













#ifdef RPC_HDR
%#ifndef _PKCS11TYPES_H_
#endif
#ifdef RPC_HDR
%#define _PKCS11TYPES_H_
#endif
#ifdef RPC_HDR
%#ifdef __cplusplus
#endif
#ifdef RPC_HDR
%extern "C"
#endif
#ifdef RPC_HDR
%{
#endif
#ifdef RPC_HDR
%#endif
#endif
#ifdef RPC_HDR
%#ifndef FALSE
#endif
#ifdef RPC_HDR
%#define FALSE 0
#endif
#ifdef RPC_HDR
%#endif
#endif
#ifdef RPC_HDR
%#ifndef TRUE
#endif
#ifdef RPC_HDR
%#define TRUE (!FALSE)
#endif
#ifdef RPC_HDR
%#endif
#endif
typedef unsigned int uint_32;
typedef unsigned int REMOTE_uint_32;
typedef  int int_32;
typedef  int REMOTE_int_32;
#ifdef RPC_HDR
%#ifndef NULL_PTR
#endif
#ifdef RPC_HDR
%#define NULL_PTR NULL
#endif
#ifdef RPC_HDR
%#endif
#endif
typedef unsigned char CK_BYTE;
typedef unsigned char REMOTE_CK_BYTE;
typedef  CK_BYTE CK_CHAR;
typedef  REMOTE_CK_BYTE REMOTE_CK_CHAR;
typedef  CK_BYTE CK_UTF8CHAR;
typedef  REMOTE_CK_BYTE REMOTE_CK_UTF8CHAR;
typedef  CK_BYTE CK_BBOOL;
typedef  REMOTE_CK_BYTE REMOTE_CK_BBOOL;
typedef unsigned long CK_ULONG;
typedef unsigned long REMOTE_CK_ULONG;
typedef  long CK_LONG;
typedef  long REMOTE_CK_LONG;
typedef  CK_ULONG CK_FLAGS;
typedef  REMOTE_CK_ULONG REMOTE_CK_FLAGS;
#ifdef RPC_HDR
%#define CK_UNAVAILABLE_INFORMATION (~0UL)
#endif
#ifdef RPC_HDR
%#define CK_EFFECTIVELY_INFINITE 0
#endif
typedef  CK_BYTE * CK_BYTE_PTR;
typedef  REMOTE_CK_BYTE * REMOTE_CK_BYTE_PTR;
typedef  CK_CHAR * CK_CHAR_PTR;
typedef  REMOTE_CK_CHAR * REMOTE_CK_CHAR_PTR;
typedef  CK_UTF8CHAR * CK_UTF8CHAR_PTR;
typedef  REMOTE_CK_UTF8CHAR * REMOTE_CK_UTF8CHAR_PTR;
typedef  CK_ULONG * CK_ULONG_PTR;
typedef  REMOTE_CK_ULONG * REMOTE_CK_ULONG_PTR;
typedef  int * CK_VOID_PTR;
typedef  int * REMOTE_CK_VOID_PTR;
typedef  CK_VOID_PTR * CK_VOID_PTR_PTR;
typedef  REMOTE_CK_VOID_PTR * REMOTE_CK_VOID_PTR_PTR;
#ifdef RPC_HDR
%#define CK_INVALID_HANDLE 0
#endif
struct CK_VERSION {
	CK_BYTE major;
	CK_BYTE minor;
};
typedef struct CK_VERSION CK_VERSION;
struct REMOTE_CK_VERSION {
	REMOTE_CK_BYTE major;
	REMOTE_CK_BYTE minor;
};
typedef struct REMOTE_CK_VERSION REMOTE_CK_VERSION;
typedef  CK_VERSION * CK_VERSION_PTR;
typedef  REMOTE_CK_VERSION * REMOTE_CK_VERSION_PTR;
struct CK_INFO {
	CK_VERSION cryptokiVersion;
	CK_CHAR manufacturerID[32];
	CK_FLAGS flags;
	CK_CHAR libraryDescription[32];
	CK_VERSION libraryVersion;
};
typedef struct CK_INFO CK_INFO;
struct REMOTE_CK_INFO {
	REMOTE_CK_VERSION cryptokiVersion;
	REMOTE_CK_CHAR manufacturerID[32];
	REMOTE_CK_FLAGS flags;
	REMOTE_CK_CHAR libraryDescription[32];
	REMOTE_CK_VERSION libraryVersion;
};
typedef struct REMOTE_CK_INFO REMOTE_CK_INFO;
typedef  CK_INFO * CK_INFO_PTR;
typedef  REMOTE_CK_INFO * REMOTE_CK_INFO_PTR;
typedef  CK_ULONG CK_NOTIFICATION;
typedef  REMOTE_CK_ULONG REMOTE_CK_NOTIFICATION;
#ifdef RPC_HDR
%#define CKN_SURRENDER 0
#endif
typedef  CK_ULONG CK_SLOT_ID;
typedef  REMOTE_CK_ULONG REMOTE_CK_SLOT_ID;
typedef  CK_SLOT_ID * CK_SLOT_ID_PTR;
typedef  REMOTE_CK_SLOT_ID * REMOTE_CK_SLOT_ID_PTR;
struct CK_SLOT_INFO {
	CK_CHAR slotDescription[64];
	CK_CHAR manufacturerID[32];
	CK_FLAGS flags;
	CK_VERSION hardwareVersion;
	CK_VERSION firmwareVersion;
};
typedef struct CK_SLOT_INFO CK_SLOT_INFO;
struct REMOTE_CK_SLOT_INFO {
	REMOTE_CK_CHAR slotDescription[64];
	REMOTE_CK_CHAR manufacturerID[32];
	REMOTE_CK_FLAGS flags;
	REMOTE_CK_VERSION hardwareVersion;
	REMOTE_CK_VERSION firmwareVersion;
};
typedef struct REMOTE_CK_SLOT_INFO REMOTE_CK_SLOT_INFO;
#ifdef RPC_HDR
%#define CKF_TOKEN_PRESENT 0x00000001  
#endif
#ifdef RPC_HDR
%#define CKF_REMOVABLE_DEVICE 0x00000002  
#endif
#ifdef RPC_HDR
%#define CKF_HW_SLOT 0x00000004  
#endif
typedef  CK_SLOT_INFO * CK_SLOT_INFO_PTR;
typedef  REMOTE_CK_SLOT_INFO * REMOTE_CK_SLOT_INFO_PTR;
struct CK_TOKEN_INFO {
	CK_CHAR label[32];
	CK_CHAR manufacturerID[32];
	CK_CHAR model[16];
	CK_CHAR serialNumber[16];
	CK_FLAGS flags;
	CK_ULONG ulMaxSessionCount;
	CK_ULONG ulSessionCount;
	CK_ULONG ulMaxRwSessionCount;
	CK_ULONG ulRwSessionCount;
	CK_ULONG ulMaxPinLen;
	CK_ULONG ulMinPinLen;
	CK_ULONG ulTotalPublicMemory;
	CK_ULONG ulFreePublicMemory;
	CK_ULONG ulTotalPrivateMemory;
	CK_ULONG ulFreePrivateMemory;
	CK_VERSION hardwareVersion;
	CK_VERSION firmwareVersion;
	CK_CHAR utcTime[16];
};
typedef struct CK_TOKEN_INFO CK_TOKEN_INFO;
struct REMOTE_CK_TOKEN_INFO {
	REMOTE_CK_CHAR label[32];
	REMOTE_CK_CHAR manufacturerID[32];
	REMOTE_CK_CHAR model[16];
	REMOTE_CK_CHAR serialNumber[16];
	REMOTE_CK_FLAGS flags;
	REMOTE_CK_ULONG ulMaxSessionCount;
	REMOTE_CK_ULONG ulSessionCount;
	REMOTE_CK_ULONG ulMaxRwSessionCount;
	REMOTE_CK_ULONG ulRwSessionCount;
	REMOTE_CK_ULONG ulMaxPinLen;
	REMOTE_CK_ULONG ulMinPinLen;
	REMOTE_CK_ULONG ulTotalPublicMemory;
	REMOTE_CK_ULONG ulFreePublicMemory;
	REMOTE_CK_ULONG ulTotalPrivateMemory;
	REMOTE_CK_ULONG ulFreePrivateMemory;
	REMOTE_CK_VERSION hardwareVersion;
	REMOTE_CK_VERSION firmwareVersion;
	REMOTE_CK_CHAR utcTime[16];
};
typedef struct REMOTE_CK_TOKEN_INFO REMOTE_CK_TOKEN_INFO;
#ifdef RPC_HDR
%#define CKF_RNG 0x00000001  
#endif
#ifdef RPC_HDR
%#define CKF_WRITE_PROTECTED 0x00000002  
#endif
#ifdef RPC_HDR
%#define CKF_LOGIN_REQUIRED 0x00000004  
#endif
#ifdef RPC_HDR
%#define CKF_USER_PIN_INITIALIZED 0x00000008  
#endif
#ifdef RPC_HDR
%#define CKF_RESTORE_KEY_NOT_NEEDED 0x00000020
#endif
#ifdef RPC_HDR
%#define CKF_CLOCK_ON_TOKEN 0x00000040
#endif
#ifdef RPC_HDR
%#define CKF_PROTECTED_AUTHENTICATION_PATH 0x00000100
#endif
#ifdef RPC_HDR
%#define CKF_DUAL_CRYPTO_OPERATIONS 0x00000200
#endif
#ifdef RPC_HDR
%#define CKF_TOKEN_INITIALIZED 0x00000400
#endif
#ifdef RPC_HDR
%#define CKF_SECONDARY_AUTHENTICATION 0x00000800
#endif
#ifdef RPC_HDR
%#define CKF_USER_PIN_COUNT_LOW 0x00010000
#endif
#ifdef RPC_HDR
%#define CKF_USER_PIN_FINAL_TRY 0x00020000
#endif
#ifdef RPC_HDR
%#define CKF_USER_PIN_LOCKED 0x00040000
#endif
#ifdef RPC_HDR
%#define CKF_USER_PIN_TO_BE_CHANGED 0x00080000
#endif
#ifdef RPC_HDR
%#define CKF_SO_PIN_COUNT_LOW 0x00100000
#endif
#ifdef RPC_HDR
%#define CKF_SO_PIN_FINAL_TRY 0x00200000
#endif
#ifdef RPC_HDR
%#define CKF_SO_PIN_LOCKED 0x00400000
#endif
#ifdef RPC_HDR
%#define CKF_SO_PIN_TO_BE_CHANGED 0x00800000
#endif
#ifdef RPC_HDR
%#if 0
#endif
#ifdef RPC_HDR
%#define CKF_USER_PIN_COUNT_LOW 0x00010000
#endif
#ifdef RPC_HDR
%#define CKF_USER_PIN_FINAL_TRY 0x00020000
#endif
#ifdef RPC_HDR
%#define CKF_USER_PIN_LOCKED 0x00040000
#endif
#ifdef RPC_HDR
%#define CKF_USER_PIN_MANUFACT_VALUE 0x00080000
#endif
#ifdef RPC_HDR
%#define CKF_SO_PIN_COUNT_LOW 0x00100000
#endif
#ifdef RPC_HDR
%#define CKF_SO_PIN_FINAL_TRY 0x00200000
#endif
#ifdef RPC_HDR
%#define CKF_SO_PIN_LOCKED 0x00400000
#endif
#ifdef RPC_HDR
%#define CKF_SO_PIN_MANUFACT_VALUE 0x00800000
#endif
#ifdef RPC_HDR
%#endif
#endif
#ifdef RPC_HDR
%#define CKF_SO_PIN_DERIVED 0x01000000  
#endif
#ifdef RPC_HDR
%#define CKF_SO_CARD 0x02000000  
#endif
typedef  CK_TOKEN_INFO * CK_TOKEN_INFO_PTR;
typedef  REMOTE_CK_TOKEN_INFO * REMOTE_CK_TOKEN_INFO_PTR;
typedef  CK_ULONG CK_SESSION_HANDLE;
typedef  REMOTE_CK_ULONG REMOTE_CK_SESSION_HANDLE;
typedef  CK_SESSION_HANDLE * CK_SESSION_HANDLE_PTR;
typedef  REMOTE_CK_SESSION_HANDLE * REMOTE_CK_SESSION_HANDLE_PTR;
typedef  CK_ULONG CK_USER_TYPE;
typedef  REMOTE_CK_ULONG REMOTE_CK_USER_TYPE;
#ifdef RPC_HDR
%#define CKU_SO 0
#endif
#ifdef RPC_HDR
%#define CKU_USER 1
#endif
typedef  CK_ULONG CK_STATE;
typedef  REMOTE_CK_ULONG REMOTE_CK_STATE;
#ifdef RPC_HDR
%#define CKS_RO_PUBLIC_SESSION 0
#endif
#ifdef RPC_HDR
%#define CKS_RO_USER_FUNCTIONS 1
#endif
#ifdef RPC_HDR
%#define CKS_RW_PUBLIC_SESSION 2
#endif
#ifdef RPC_HDR
%#define CKS_RW_USER_FUNCTIONS 3
#endif
#ifdef RPC_HDR
%#define CKS_RW_SO_FUNCTIONS 4
#endif
struct CK_SESSION_INFO {
	CK_SLOT_ID slotID;
	CK_STATE state;
	CK_FLAGS flags;
	CK_ULONG ulDeviceError;
};
typedef struct CK_SESSION_INFO CK_SESSION_INFO;
struct REMOTE_CK_SESSION_INFO {
	REMOTE_CK_SLOT_ID slotID;
	REMOTE_CK_STATE state;
	REMOTE_CK_FLAGS flags;
	REMOTE_CK_ULONG ulDeviceError;
};
typedef struct REMOTE_CK_SESSION_INFO REMOTE_CK_SESSION_INFO;
#ifdef RPC_HDR
%#define CKF_RW_SESSION 0x00000002  
#endif
#ifdef RPC_HDR
%#define CKF_SERIAL_SESSION 0x00000004  
#endif
typedef  CK_SESSION_INFO * CK_SESSION_INFO_PTR;
typedef  REMOTE_CK_SESSION_INFO * REMOTE_CK_SESSION_INFO_PTR;
typedef  CK_ULONG CK_OBJECT_HANDLE;
typedef  REMOTE_CK_ULONG REMOTE_CK_OBJECT_HANDLE;
typedef  CK_OBJECT_HANDLE * CK_OBJECT_HANDLE_PTR;
typedef  REMOTE_CK_OBJECT_HANDLE * REMOTE_CK_OBJECT_HANDLE_PTR;
typedef  CK_ULONG CK_OBJECT_CLASS;
typedef  REMOTE_CK_ULONG REMOTE_CK_OBJECT_CLASS;
#ifdef RPC_HDR
%#define CKO_DATA 0x00000000
#endif
#ifdef RPC_HDR
%#define CKO_CERTIFICATE 0x00000001
#endif
#ifdef RPC_HDR
%#define CKO_PUBLIC_KEY 0x00000002
#endif
#ifdef RPC_HDR
%#define CKO_PRIVATE_KEY 0x00000003
#endif
#ifdef RPC_HDR
%#define CKO_SECRET_KEY 0x00000004
#endif
#ifdef RPC_HDR
%#define CKO_HW_FEATURE 0x00000005
#endif
#ifdef RPC_HDR
%#define CKO_DOMAIN_PARAMETERS 0x00000006
#endif
#ifdef RPC_HDR
%#define CKO_VENDOR_DEFINED 0x80000000
#endif
typedef  CK_OBJECT_CLASS * CK_OBJECT_CLASS_PTR;
typedef  REMOTE_CK_OBJECT_CLASS * REMOTE_CK_OBJECT_CLASS_PTR;
typedef  CK_ULONG CK_HW_FEATURE_TYPE;
typedef  REMOTE_CK_ULONG REMOTE_CK_HW_FEATURE_TYPE;
#ifdef RPC_HDR
%#define CKH_MONOTONIC_COUNTER 0x00000001
#endif
#ifdef RPC_HDR
%#define CKH_CLOCK 0x00000002
#endif
#ifdef RPC_HDR
%#define CKH_VENDOR_DEFINED 0x80000000
#endif
typedef  CK_ULONG CK_KEY_TYPE;
typedef  REMOTE_CK_ULONG REMOTE_CK_KEY_TYPE;
#ifdef RPC_HDR
%#define CKK_RSA 0x00000000
#endif
#ifdef RPC_HDR
%#define CKK_DSA 0x00000001
#endif
#ifdef RPC_HDR
%#define CKK_DH 0x00000002
#endif
#ifdef RPC_HDR
%#define CKK_ECDSA 0x00000003
#endif
#ifdef RPC_HDR
%#define CKK_EC 0x00000003
#endif
#ifdef RPC_HDR
%#define CKK_X9_42_DH 0x00000004
#endif
#ifdef RPC_HDR
%#define CKK_KEA 0x00000005
#endif
#ifdef RPC_HDR
%#define CKK_GENERIC_SECRET 0x00000010
#endif
#ifdef RPC_HDR
%#define CKK_RC2 0x00000011
#endif
#ifdef RPC_HDR
%#define CKK_RC4 0x00000012
#endif
#ifdef RPC_HDR
%#define CKK_DES 0x00000013
#endif
#ifdef RPC_HDR
%#define CKK_DES2 0x00000014
#endif
#ifdef RPC_HDR
%#define CKK_DES3 0x00000015
#endif
#ifdef RPC_HDR
%#define CKK_CAST 0x00000016
#endif
#ifdef RPC_HDR
%#define CKK_CAST3 0x00000017
#endif
#ifdef RPC_HDR
%#define CKK_CAST5 0x00000018
#endif
#ifdef RPC_HDR
%#define CKK_CAST128 0x00000018  
#endif
#ifdef RPC_HDR
%#define CKK_RC5 0x00000019
#endif
#ifdef RPC_HDR
%#define CKK_IDEA 0x0000001A
#endif
#ifdef RPC_HDR
%#define CKK_SKIPJACK 0x0000001B
#endif
#ifdef RPC_HDR
%#define CKK_BATON 0x0000001C
#endif
#ifdef RPC_HDR
%#define CKK_JUNIPER 0x0000001D
#endif
#ifdef RPC_HDR
%#define CKK_CDMF 0x0000001E
#endif
#ifdef RPC_HDR
%#define CKK_AES 0x0000001F
#endif
#ifdef RPC_HDR
%#define CKK_VENDOR_DEFINED 0x80000000
#endif
typedef  CK_ULONG CK_CERTIFICATE_TYPE;
typedef  REMOTE_CK_ULONG REMOTE_CK_CERTIFICATE_TYPE;
#ifdef RPC_HDR
%#define CKC_X_509 0x00000000
#endif
#ifdef RPC_HDR
%#define CKC_X_509_ATTR_CERT 0x00000001
#endif
#ifdef RPC_HDR
%#define CKC_VENDOR_DEFINED 0x80000000
#endif
typedef  CK_ULONG CK_ATTRIBUTE_TYPE;
typedef  REMOTE_CK_ULONG REMOTE_CK_ATTRIBUTE_TYPE;
#ifdef RPC_HDR
%#define CKA_CLASS 0x00000000
#endif
#ifdef RPC_HDR
%#define CKA_TOKEN 0x00000001
#endif
#ifdef RPC_HDR
%#define CKA_PRIVATE 0x00000002
#endif
#ifdef RPC_HDR
%#define CKA_LABEL 0x00000003
#endif
#ifdef RPC_HDR
%#define CKA_APPLICATION 0x00000010
#endif
#ifdef RPC_HDR
%#define CKA_VALUE 0x00000011
#endif
#ifdef RPC_HDR
%#define CKA_OBJECT_ID 0x00000012
#endif
#ifdef RPC_HDR
%#define CKA_CERTIFICATE_TYPE 0x00000080
#endif
#ifdef RPC_HDR
%#define CKA_ISSUER 0x00000081
#endif
#ifdef RPC_HDR
%#define CKA_SERIAL_NUMBER 0x00000082
#endif
#ifdef RPC_HDR
%#define CKA_AC_ISSUER 0x00000083
#endif
#ifdef RPC_HDR
%#define CKA_OWNER 0x00000084
#endif
#ifdef RPC_HDR
%#define CKA_ATTR_TYPES 0x00000085
#endif
#ifdef RPC_HDR
%#define CKA_TRUSTED 0x00000086
#endif
#ifdef RPC_HDR
%#define CKA_KEY_TYPE 0x00000100
#endif
#ifdef RPC_HDR
%#define CKA_SUBJECT 0x00000101
#endif
#ifdef RPC_HDR
%#define CKA_ID 0x00000102
#endif
#ifdef RPC_HDR
%#define CKA_SENSITIVE 0x00000103
#endif
#ifdef RPC_HDR
%#define CKA_ENCRYPT 0x00000104
#endif
#ifdef RPC_HDR
%#define CKA_DECRYPT 0x00000105
#endif
#ifdef RPC_HDR
%#define CKA_WRAP 0x00000106
#endif
#ifdef RPC_HDR
%#define CKA_UNWRAP 0x00000107
#endif
#ifdef RPC_HDR
%#define CKA_SIGN 0x00000108
#endif
#ifdef RPC_HDR
%#define CKA_SIGN_RECOVER 0x00000109
#endif
#ifdef RPC_HDR
%#define CKA_VERIFY 0x0000010A
#endif
#ifdef RPC_HDR
%#define CKA_VERIFY_RECOVER 0x0000010B
#endif
#ifdef RPC_HDR
%#define CKA_DERIVE 0x0000010C
#endif
#ifdef RPC_HDR
%#define CKA_START_DATE 0x00000110
#endif
#ifdef RPC_HDR
%#define CKA_END_DATE 0x00000111
#endif
#ifdef RPC_HDR
%#define CKA_MODULUS 0x00000120
#endif
#ifdef RPC_HDR
%#define CKA_MODULUS_BITS 0x00000121
#endif
#ifdef RPC_HDR
%#define CKA_PUBLIC_EXPONENT 0x00000122
#endif
#ifdef RPC_HDR
%#define CKA_PRIVATE_EXPONENT 0x00000123
#endif
#ifdef RPC_HDR
%#define CKA_PRIME_1 0x00000124
#endif
#ifdef RPC_HDR
%#define CKA_PRIME_2 0x00000125
#endif
#ifdef RPC_HDR
%#define CKA_EXPONENT_1 0x00000126
#endif
#ifdef RPC_HDR
%#define CKA_EXPONENT_2 0x00000127
#endif
#ifdef RPC_HDR
%#define CKA_COEFFICIENT 0x00000128
#endif
#ifdef RPC_HDR
%#define CKA_PRIME 0x00000130
#endif
#ifdef RPC_HDR
%#define CKA_SUBPRIME 0x00000131
#endif
#ifdef RPC_HDR
%#define CKA_BASE 0x00000132
#endif
#ifdef RPC_HDR
%#define CKA_PRIME_BITS 0x00000133
#endif
#ifdef RPC_HDR
%#define CKA_SUBPRIME_BITS 0x00000134
#endif
#ifdef RPC_HDR
%#define CKA_VALUE_BITS 0x00000160
#endif
#ifdef RPC_HDR
%#define CKA_VALUE_LEN 0x00000161
#endif
#ifdef RPC_HDR
%#define CKA_EXTRACTABLE 0x00000162
#endif
#ifdef RPC_HDR
%#define CKA_LOCAL 0x00000163
#endif
#ifdef RPC_HDR
%#define CKA_NEVER_EXTRACTABLE 0x00000164
#endif
#ifdef RPC_HDR
%#define CKA_ALWAYS_SENSITIVE 0x00000165
#endif
#ifdef RPC_HDR
%#define CKA_KEY_GEN_MECHANISM 0x00000166
#endif
#ifdef RPC_HDR
%#define CKA_MODIFIABLE 0x00000170
#endif
#ifdef RPC_HDR
%#define CKA_ECDSA_PARAMS 0x00000180
#endif
#ifdef RPC_HDR
%#define CKA_EC_PARAMS 0x00000180
#endif
#ifdef RPC_HDR
%#define CKA_EC_POINT 0x00000181
#endif
#ifdef RPC_HDR
%#define CKA_SECONDARY_AUTH 0x00000200
#endif
#ifdef RPC_HDR
%#define CKA_AUTH_PIN_FLAGS 0x00000201
#endif
#ifdef RPC_HDR
%#define CKA_HW_FEATURE_TYPE 0x00000300
#endif
#ifdef RPC_HDR
%#define CKA_RESET_ON_INIT 0x00000301
#endif
#ifdef RPC_HDR
%#define CKA_HAS_RESET 0x00000302
#endif
#ifdef RPC_HDR
%#define CKA_VENDOR_DEFINED 0x80000000
#endif
#ifdef RPC_HDR
%#define CKA_IBM_OPAQUE CKA_VENDOR_DEFINED + 1
#endif
struct CK_ATTRIBUTE {
	CK_ATTRIBUTE_TYPE type;
	CK_VOID_PTR * pValue;
	CK_ULONG ulValueLen;
};
typedef struct CK_ATTRIBUTE CK_ATTRIBUTE;
struct REMOTE_CK_ATTRIBUTE {
	REMOTE_CK_ATTRIBUTE_TYPE type;
	REMOTE_CK_BYTE pValue<>;
	REMOTE_CK_ULONG ulValueLen;
};
typedef struct REMOTE_CK_ATTRIBUTE REMOTE_CK_ATTRIBUTE;
typedef  CK_ATTRIBUTE * CK_ATTRIBUTE_PTR;
typedef  REMOTE_CK_ATTRIBUTE * REMOTE_CK_ATTRIBUTE_PTR;
struct CK_DATE {
	CK_CHAR year[4];
	CK_CHAR month[2];
	CK_CHAR day[2];
};
typedef struct CK_DATE CK_DATE;
struct REMOTE_CK_DATE {
	REMOTE_CK_CHAR year[4];
	REMOTE_CK_CHAR month[2];
	REMOTE_CK_CHAR day[2];
};
typedef struct REMOTE_CK_DATE REMOTE_CK_DATE;
typedef  CK_ULONG CK_MECHANISM_TYPE;
typedef  REMOTE_CK_ULONG REMOTE_CK_MECHANISM_TYPE;
#ifdef RPC_HDR
%#define CKM_RSA_PKCS_KEY_PAIR_GEN 0x00000000
#endif
#ifdef RPC_HDR
%#define CKM_RSA_PKCS 0x00000001
#endif
#ifdef RPC_HDR
%#define CKM_RSA_9796 0x00000002
#endif
#ifdef RPC_HDR
%#define CKM_RSA_X_509 0x00000003
#endif
#ifdef RPC_HDR
%#define CKM_MD2_RSA_PKCS 0x00000004
#endif
#ifdef RPC_HDR
%#define CKM_MD5_RSA_PKCS 0x00000005
#endif
#ifdef RPC_HDR
%#define CKM_SHA1_RSA_PKCS 0x00000006
#endif
#ifdef RPC_HDR
%#define CKM_RIPEMD128_RSA_PKCS 0x00000007
#endif
#ifdef RPC_HDR
%#define CKM_RIPEMD160_RSA_PKCS 0x00000008
#endif
#ifdef RPC_HDR
%#define CKM_RSA_PKCS_OAEP 0x00000009
#endif
#ifdef RPC_HDR
%#define CKM_RSA_X9_31_KEY_PAIR_GEN 0x0000000A
#endif
#ifdef RPC_HDR
%#define CKM_RSA_X9_31 0x0000000B
#endif
#ifdef RPC_HDR
%#define CKM_SHA1_RSA_X9_31 0x0000000C
#endif
#ifdef RPC_HDR
%#define CKM_RSA_PKCS_PSS 0x0000000D
#endif
#ifdef RPC_HDR
%#define CKM_SHA1_RSA_PKCS_PSS 0x0000000E
#endif
#ifdef RPC_HDR
%#define CKM_DSA_KEY_PAIR_GEN 0x00000010
#endif
#ifdef RPC_HDR
%#define CKM_DSA 0x00000011
#endif
#ifdef RPC_HDR
%#define CKM_DSA_SHA1 0x00000012
#endif
#ifdef RPC_HDR
%#define CKM_DH_PKCS_KEY_PAIR_GEN 0x00000020
#endif
#ifdef RPC_HDR
%#define CKM_DH_PKCS_DERIVE 0x00000021
#endif
#ifdef RPC_HDR
%#define CKM_X9_42_DH_KEY_PAIR_GEN 0x00000030
#endif
#ifdef RPC_HDR
%#define CKM_X9_42_DH_DERIVE 0x00000031
#endif
#ifdef RPC_HDR
%#define CKM_X9_42_DH_HYBRID_DERIVE 0x00000032
#endif
#ifdef RPC_HDR
%#define CKM_X9_42_MQV_DERIVE 0x00000033
#endif
#ifdef RPC_HDR
%#define CKM_SHA256_RSA_PKCS 0x00000043
#endif
#ifdef RPC_HDR
%#define CKM_RC2_KEY_GEN 0x00000100
#endif
#ifdef RPC_HDR
%#define CKM_RC2_ECB 0x00000101
#endif
#ifdef RPC_HDR
%#define CKM_RC2_CBC 0x00000102
#endif
#ifdef RPC_HDR
%#define CKM_RC2_MAC 0x00000103
#endif
#ifdef RPC_HDR
%#define CKM_RC2_MAC_GENERAL 0x00000104
#endif
#ifdef RPC_HDR
%#define CKM_RC2_CBC_PAD 0x00000105
#endif
#ifdef RPC_HDR
%#define CKM_RC4_KEY_GEN 0x00000110
#endif
#ifdef RPC_HDR
%#define CKM_RC4 0x00000111
#endif
#ifdef RPC_HDR
%#define CKM_DES_KEY_GEN 0x00000120
#endif
#ifdef RPC_HDR
%#define CKM_DES_ECB 0x00000121
#endif
#ifdef RPC_HDR
%#define CKM_DES_CBC 0x00000122
#endif
#ifdef RPC_HDR
%#define CKM_DES_MAC 0x00000123
#endif
#ifdef RPC_HDR
%#define CKM_DES_MAC_GENERAL 0x00000124
#endif
#ifdef RPC_HDR
%#define CKM_DES_CBC_PAD 0x00000125
#endif
#ifdef RPC_HDR
%#define CKM_DES2_KEY_GEN 0x00000130
#endif
#ifdef RPC_HDR
%#define CKM_DES3_KEY_GEN 0x00000131
#endif
#ifdef RPC_HDR
%#define CKM_DES3_ECB 0x00000132
#endif
#ifdef RPC_HDR
%#define CKM_DES3_CBC 0x00000133
#endif
#ifdef RPC_HDR
%#define CKM_DES3_MAC 0x00000134
#endif
#ifdef RPC_HDR
%#define CKM_DES3_MAC_GENERAL 0x00000135
#endif
#ifdef RPC_HDR
%#define CKM_DES3_CBC_PAD 0x00000136
#endif
#ifdef RPC_HDR
%#define CKM_CDMF_KEY_GEN 0x00000140
#endif
#ifdef RPC_HDR
%#define CKM_CDMF_ECB 0x00000141
#endif
#ifdef RPC_HDR
%#define CKM_CDMF_CBC 0x00000142
#endif
#ifdef RPC_HDR
%#define CKM_CDMF_MAC 0x00000143
#endif
#ifdef RPC_HDR
%#define CKM_CDMF_MAC_GENERAL 0x00000144
#endif
#ifdef RPC_HDR
%#define CKM_CDMF_CBC_PAD 0x00000145
#endif
#ifdef RPC_HDR
%#define CKM_MD2 0x00000200
#endif
#ifdef RPC_HDR
%#define CKM_MD2_HMAC 0x00000201
#endif
#ifdef RPC_HDR
%#define CKM_MD2_HMAC_GENERAL 0x00000202
#endif
#ifdef RPC_HDR
%#define CKM_MD5 0x00000210
#endif
#ifdef RPC_HDR
%#define CKM_MD5_HMAC 0x00000211
#endif
#ifdef RPC_HDR
%#define CKM_MD5_HMAC_GENERAL 0x00000212
#endif
#ifdef RPC_HDR
%#define CKM_SHA_1 0x00000220
#endif
#ifdef RPC_HDR
%#define CKM_SHA_1_HMAC 0x00000221
#endif
#ifdef RPC_HDR
%#define CKM_SHA_1_HMAC_GENERAL 0x00000222
#endif
#ifdef RPC_HDR
%#define CKM_RIPEMD128 0x00000230
#endif
#ifdef RPC_HDR
%#define CKM_RIPEMD128_HMAC 0x00000231
#endif
#ifdef RPC_HDR
%#define CKM_RIPEMD128_HMAC_GENERAL 0x00000232
#endif
#ifdef RPC_HDR
%#define CKM_RIPEMD160 0x00000240
#endif
#ifdef RPC_HDR
%#define CKM_RIPEMD160_HMAC 0x00000241
#endif
#ifdef RPC_HDR
%#define CKM_RIPEMD160_HMAC_GENERAL 0x00000242
#endif
#ifdef RPC_HDR
%#define CKM_SHA256 0x00000250
#endif
#ifdef RPC_HDR
%#define CKM_SHA256_HMAC 0x00000251
#endif
#ifdef RPC_HDR
%#define CKM_SHA256_HMAC_GENERAL 0x00000252
#endif
#ifdef RPC_HDR
%#define CKM_SHA384 0x00000260
#endif
#ifdef RPC_HDR
%#define CKM_SHA384_HMAC 0x00000261
#endif
#ifdef RPC_HDR
%#define CKM_SHA384_HMAC_GENERAL 0x00000262
#endif
#ifdef RPC_HDR
%#define CKM_SHA512 0x00000270
#endif
#ifdef RPC_HDR
%#define CKM_SHA512_HMAC 0x00000271
#endif
#ifdef RPC_HDR
%#define CKM_SHA512_HMAC_GENERAL 0x00000272
#endif
#ifdef RPC_HDR
%#define CKM_CAST_KEY_GEN 0x00000300
#endif
#ifdef RPC_HDR
%#define CKM_CAST_ECB 0x00000301
#endif
#ifdef RPC_HDR
%#define CKM_CAST_CBC 0x00000302
#endif
#ifdef RPC_HDR
%#define CKM_CAST_MAC 0x00000303
#endif
#ifdef RPC_HDR
%#define CKM_CAST_MAC_GENERAL 0x00000304
#endif
#ifdef RPC_HDR
%#define CKM_CAST_CBC_PAD 0x00000305
#endif
#ifdef RPC_HDR
%#define CKM_CAST3_KEY_GEN 0x00000310
#endif
#ifdef RPC_HDR
%#define CKM_CAST3_ECB 0x00000311
#endif
#ifdef RPC_HDR
%#define CKM_CAST3_CBC 0x00000312
#endif
#ifdef RPC_HDR
%#define CKM_CAST3_MAC 0x00000313
#endif
#ifdef RPC_HDR
%#define CKM_CAST3_MAC_GENERAL 0x00000314
#endif
#ifdef RPC_HDR
%#define CKM_CAST3_CBC_PAD 0x00000315
#endif
#ifdef RPC_HDR
%#define CKM_CAST5_KEY_GEN 0x00000320
#endif
#ifdef RPC_HDR
%#define CKM_CAST128_KEY_GEN 0x00000320
#endif
#ifdef RPC_HDR
%#define CKM_CAST5_ECB 0x00000321
#endif
#ifdef RPC_HDR
%#define CKM_CAST128_ECB 0x00000321
#endif
#ifdef RPC_HDR
%#define CKM_CAST5_CBC 0x00000322
#endif
#ifdef RPC_HDR
%#define CKM_CAST128_CBC 0x00000322
#endif
#ifdef RPC_HDR
%#define CKM_CAST5_MAC 0x00000323
#endif
#ifdef RPC_HDR
%#define CKM_CAST128_MAC 0x00000323
#endif
#ifdef RPC_HDR
%#define CKM_CAST5_MAC_GENERAL 0x00000324
#endif
#ifdef RPC_HDR
%#define CKM_CAST128_MAC_GENERAL 0x00000324
#endif
#ifdef RPC_HDR
%#define CKM_CAST5_CBC_PAD 0x00000325
#endif
#ifdef RPC_HDR
%#define CKM_CAST128_CBC_PAD 0x00000325
#endif
#ifdef RPC_HDR
%#define CKM_RC5_KEY_GEN 0x00000330
#endif
#ifdef RPC_HDR
%#define CKM_RC5_ECB 0x00000331
#endif
#ifdef RPC_HDR
%#define CKM_RC5_CBC 0x00000332
#endif
#ifdef RPC_HDR
%#define CKM_RC5_MAC 0x00000333
#endif
#ifdef RPC_HDR
%#define CKM_RC5_MAC_GENERAL 0x00000334
#endif
#ifdef RPC_HDR
%#define CKM_RC5_CBC_PAD 0x00000335
#endif
#ifdef RPC_HDR
%#define CKM_IDEA_KEY_GEN 0x00000340
#endif
#ifdef RPC_HDR
%#define CKM_IDEA_ECB 0x00000341
#endif
#ifdef RPC_HDR
%#define CKM_IDEA_CBC 0x00000342
#endif
#ifdef RPC_HDR
%#define CKM_IDEA_MAC 0x00000343
#endif
#ifdef RPC_HDR
%#define CKM_IDEA_MAC_GENERAL 0x00000344
#endif
#ifdef RPC_HDR
%#define CKM_IDEA_CBC_PAD 0x00000345
#endif
#ifdef RPC_HDR
%#define CKM_GENERIC_SECRET_KEY_GEN 0x00000350
#endif
#ifdef RPC_HDR
%#define CKM_CONCATENATE_BASE_AND_KEY 0x00000360
#endif
#ifdef RPC_HDR
%#define CKM_CONCATENATE_BASE_AND_DATA 0x00000362
#endif
#ifdef RPC_HDR
%#define CKM_CONCATENATE_DATA_AND_BASE 0x00000363
#endif
#ifdef RPC_HDR
%#define CKM_XOR_BASE_AND_DATA 0x00000364
#endif
#ifdef RPC_HDR
%#define CKM_EXTRACT_KEY_FROM_KEY 0x00000365
#endif
#ifdef RPC_HDR
%#define CKM_SSL3_PRE_MASTER_KEY_GEN 0x00000370
#endif
#ifdef RPC_HDR
%#define CKM_SSL3_MASTER_KEY_DERIVE 0x00000371
#endif
#ifdef RPC_HDR
%#define CKM_SSL3_KEY_AND_MAC_DERIVE 0x00000372
#endif
#ifdef RPC_HDR
%#define CKM_SSL3_MASTER_KEY_DERIVE_DH 0x00000373
#endif
#ifdef RPC_HDR
%#define CKM_TLS_PRE_MASTER_KEY_GEN 0x00000374
#endif
#ifdef RPC_HDR
%#define CKM_TLS_MASTER_KEY_DERIVE 0x00000375
#endif
#ifdef RPC_HDR
%#define CKM_TLS_KEY_AND_MAC_DERIVE 0x00000376
#endif
#ifdef RPC_HDR
%#define CKM_TLS_MASTER_KEY_DERIVE_DH 0x00000377
#endif
#ifdef RPC_HDR
%#define CKM_SSL3_MD5_MAC 0x00000380
#endif
#ifdef RPC_HDR
%#define CKM_SSL3_SHA1_MAC 0x00000381
#endif
#ifdef RPC_HDR
%#define CKM_MD5_KEY_DERIVATION 0x00000390
#endif
#ifdef RPC_HDR
%#define CKM_MD2_KEY_DERIVATION 0x00000391
#endif
#ifdef RPC_HDR
%#define CKM_SHA1_KEY_DERIVATION 0x00000392
#endif
#ifdef RPC_HDR
%#define CKM_SHA256_KEY_DERIVATION 0x00000393
#endif
#ifdef RPC_HDR
%#define CKM_PBE_MD2_DES_CBC 0x000003A0
#endif
#ifdef RPC_HDR
%#define CKM_PBE_MD5_DES_CBC 0x000003A1
#endif
#ifdef RPC_HDR
%#define CKM_PBE_MD5_CAST_CBC 0x000003A2
#endif
#ifdef RPC_HDR
%#define CKM_PBE_MD5_CAST3_CBC 0x000003A3
#endif
#ifdef RPC_HDR
%#define CKM_PBE_MD5_CAST5_CBC 0x000003A4
#endif
#ifdef RPC_HDR
%#define CKM_PBE_MD5_CAST128_CBC 0x000003A4
#endif
#ifdef RPC_HDR
%#define CKM_PBE_SHA1_CAST5_CBC 0x000003A5
#endif
#ifdef RPC_HDR
%#define CKM_PBE_SHA1_CAST128_CBC 0x000003A5
#endif
#ifdef RPC_HDR
%#define CKM_PBE_SHA1_RC4_128 0x000003A6
#endif
#ifdef RPC_HDR
%#define CKM_PBE_SHA1_RC4_40 0x000003A7
#endif
#ifdef RPC_HDR
%#define CKM_PBE_SHA1_DES3_EDE_CBC 0x000003A8
#endif
#ifdef RPC_HDR
%#define CKM_PBE_SHA1_DES2_EDE_CBC 0x000003A9
#endif
#ifdef RPC_HDR
%#define CKM_PBE_SHA1_RC2_128_CBC 0x000003AA
#endif
#ifdef RPC_HDR
%#define CKM_PBE_SHA1_RC2_40_CBC 0x000003AB
#endif
#ifdef RPC_HDR
%#define CKM_PKCS5_PBKD2 0x000003B0
#endif
#ifdef RPC_HDR
%#define CKM_PBA_SHA1_WITH_SHA1_HMAC 0x000003C0
#endif
#ifdef RPC_HDR
%#define CKM_KEY_WRAP_LYNKS 0x00000400
#endif
#ifdef RPC_HDR
%#define CKM_KEY_WRAP_SET_OAEP 0x00000401
#endif
#ifdef RPC_HDR
%#define CKM_SKIPJACK_KEY_GEN 0x00001000
#endif
#ifdef RPC_HDR
%#define CKM_SKIPJACK_ECB64 0x00001001
#endif
#ifdef RPC_HDR
%#define CKM_SKIPJACK_CBC64 0x00001002
#endif
#ifdef RPC_HDR
%#define CKM_SKIPJACK_OFB64 0x00001003
#endif
#ifdef RPC_HDR
%#define CKM_SKIPJACK_CFB64 0x00001004
#endif
#ifdef RPC_HDR
%#define CKM_SKIPJACK_CFB32 0x00001005
#endif
#ifdef RPC_HDR
%#define CKM_SKIPJACK_CFB16 0x00001006
#endif
#ifdef RPC_HDR
%#define CKM_SKIPJACK_CFB8 0x00001007
#endif
#ifdef RPC_HDR
%#define CKM_SKIPJACK_WRAP 0x00001008
#endif
#ifdef RPC_HDR
%#define CKM_SKIPJACK_PRIVATE_WRAP 0x00001009
#endif
#ifdef RPC_HDR
%#define CKM_SKIPJACK_RELAYX 0x0000100a
#endif
#ifdef RPC_HDR
%#define CKM_KEA_KEY_PAIR_GEN 0x00001010
#endif
#ifdef RPC_HDR
%#define CKM_KEA_KEY_DERIVE 0x00001011
#endif
#ifdef RPC_HDR
%#define CKM_FORTEZZA_TIMESTAMP 0x00001020
#endif
#ifdef RPC_HDR
%#define CKM_BATON_KEY_GEN 0x00001030
#endif
#ifdef RPC_HDR
%#define CKM_BATON_ECB128 0x00001031
#endif
#ifdef RPC_HDR
%#define CKM_BATON_ECB96 0x00001032
#endif
#ifdef RPC_HDR
%#define CKM_BATON_CBC128 0x00001033
#endif
#ifdef RPC_HDR
%#define CKM_BATON_COUNTER 0x00001034
#endif
#ifdef RPC_HDR
%#define CKM_BATON_SHUFFLE 0x00001035
#endif
#ifdef RPC_HDR
%#define CKM_BATON_WRAP 0x00001036
#endif
#ifdef RPC_HDR
%#define CKM_ECDSA_KEY_PAIR_GEN 0x00001040
#endif
#ifdef RPC_HDR
%#define CKM_EC_KEY_PAIR_GEN 0x00001040
#endif
#ifdef RPC_HDR
%#define CKM_ECDSA 0x00001041
#endif
#ifdef RPC_HDR
%#define CKM_ECDSA_SHA1 0x00001042
#endif
#ifdef RPC_HDR
%#define CKM_ECDH1_DERIVE 0x00001050
#endif
#ifdef RPC_HDR
%#define CKM_ECDH1_COFACTOR_DERIVE 0x00001051
#endif
#ifdef RPC_HDR
%#define CKM_ECMQV_DERIVE 0x00001052
#endif
#ifdef RPC_HDR
%#define CKM_JUNIPER_KEY_GEN 0x00001060
#endif
#ifdef RPC_HDR
%#define CKM_JUNIPER_ECB128 0x00001061
#endif
#ifdef RPC_HDR
%#define CKM_JUNIPER_CBC128 0x00001062
#endif
#ifdef RPC_HDR
%#define CKM_JUNIPER_COUNTER 0x00001063
#endif
#ifdef RPC_HDR
%#define CKM_JUNIPER_SHUFFLE 0x00001064
#endif
#ifdef RPC_HDR
%#define CKM_JUNIPER_WRAP 0x00001065
#endif
#ifdef RPC_HDR
%#define CKM_FASTHASH 0x00001070
#endif
#ifdef RPC_HDR
%#define CKM_AES_KEY_GEN 0x00001080
#endif
#ifdef RPC_HDR
%#define CKM_AES_ECB 0x00001081
#endif
#ifdef RPC_HDR
%#define CKM_AES_CBC 0x00001082
#endif
#ifdef RPC_HDR
%#define CKM_AES_MAC 0x00001083
#endif
#ifdef RPC_HDR
%#define CKM_AES_MAC_GENERAL 0x00001084
#endif
#ifdef RPC_HDR
%#define CKM_AES_CBC_PAD 0x00001085
#endif
#ifdef RPC_HDR
%#define CKM_DSA_PARAMETER_GEN 0x00002000
#endif
#ifdef RPC_HDR
%#define CKM_DH_PKCS_PARAMETER_GEN 0x00002001
#endif
#ifdef RPC_HDR
%#define CKM_X9_42_DH_PARAMETER_GEN 0x00002002
#endif
#ifdef RPC_HDR
%#define CKM_VENDOR_DEFINED 0x80000000
#endif
typedef  CK_MECHANISM_TYPE * CK_MECHANISM_TYPE_PTR;
typedef  REMOTE_CK_MECHANISM_TYPE * REMOTE_CK_MECHANISM_TYPE_PTR;
struct CK_MECHANISM {
	CK_MECHANISM_TYPE mechanism;
	CK_VOID_PTR * pParameter;
	CK_ULONG ulParameterLen;
};
typedef struct CK_MECHANISM CK_MECHANISM;
struct REMOTE_CK_MECHANISM {
	REMOTE_CK_MECHANISM_TYPE mechanism;
	REMOTE_CK_BYTE pParameter<>;
	REMOTE_CK_ULONG ulParameterLen;
};
typedef struct REMOTE_CK_MECHANISM REMOTE_CK_MECHANISM;
typedef  CK_MECHANISM * CK_MECHANISM_PTR;
typedef  REMOTE_CK_MECHANISM * REMOTE_CK_MECHANISM_PTR;
struct CK_MECHANISM_INFO {
	CK_ULONG ulMinKeySize;
	CK_ULONG ulMaxKeySize;
	CK_FLAGS flags;
};
typedef struct CK_MECHANISM_INFO CK_MECHANISM_INFO;
struct REMOTE_CK_MECHANISM_INFO {
	REMOTE_CK_ULONG ulMinKeySize;
	REMOTE_CK_ULONG ulMaxKeySize;
	REMOTE_CK_FLAGS flags;
};
typedef struct REMOTE_CK_MECHANISM_INFO REMOTE_CK_MECHANISM_INFO;
#ifdef RPC_HDR
%#define CKF_HW 0x00000001  
#endif
#ifdef RPC_HDR
%#define CKF_ENCRYPT 0x00000100
#endif
#ifdef RPC_HDR
%#define CKF_DECRYPT 0x00000200
#endif
#ifdef RPC_HDR
%#define CKF_DIGEST 0x00000400
#endif
#ifdef RPC_HDR
%#define CKF_SIGN 0x00000800
#endif
#ifdef RPC_HDR
%#define CKF_SIGN_RECOVER 0x00001000
#endif
#ifdef RPC_HDR
%#define CKF_VERIFY 0x00002000
#endif
#ifdef RPC_HDR
%#define CKF_VERIFY_RECOVER 0x00004000
#endif
#ifdef RPC_HDR
%#define CKF_GENERATE 0x00008000
#endif
#ifdef RPC_HDR
%#define CKF_GENERATE_KEY_PAIR 0x00010000
#endif
#ifdef RPC_HDR
%#define CKF_WRAP 0x00020000
#endif
#ifdef RPC_HDR
%#define CKF_UNWRAP 0x00040000
#endif
#ifdef RPC_HDR
%#define CKF_DERIVE 0x00080000
#endif
#ifdef RPC_HDR
%#define CKF_EC_F_P 0x00100000
#endif
#ifdef RPC_HDR
%#define CKF_EC_F_2M 0x00200000
#endif
#ifdef RPC_HDR
%#define CKF_EC_ECPARAMETERS 0x00400000
#endif
#ifdef RPC_HDR
%#define CKF_EC_NAMEDCURVE 0x00800000
#endif
#ifdef RPC_HDR
%#define CKF_EC_UNCOMPRESS 0x01000000
#endif
#ifdef RPC_HDR
%#define CKF_EC_COMPRESS 0x02000000
#endif
#ifdef RPC_HDR
%#define CKF_EXTENSION 0x80000000  
#endif
typedef  CK_MECHANISM_INFO * CK_MECHANISM_INFO_PTR;
typedef  REMOTE_CK_MECHANISM_INFO * REMOTE_CK_MECHANISM_INFO_PTR;
typedef  CK_ULONG CK_RV;
typedef  REMOTE_CK_ULONG REMOTE_CK_RV;
#ifdef RPC_HDR
%#define CKR_OK 0x00000000
#endif
#ifdef RPC_HDR
%#define CKR_CANCEL 0x00000001
#endif
#ifdef RPC_HDR
%#define CKR_HOST_MEMORY 0x00000002
#endif
#ifdef RPC_HDR
%#define CKR_SLOT_ID_INVALID 0x00000003
#endif
#ifdef RPC_HDR
%#define CKR_GENERAL_ERROR 0x00000005
#endif
#ifdef RPC_HDR
%#define CKR_FUNCTION_FAILED 0x00000006
#endif
#ifdef RPC_HDR
%#define CKR_ARGUMENTS_BAD 0x00000007
#endif
#ifdef RPC_HDR
%#define CKR_NO_EVENT 0x00000008
#endif
#ifdef RPC_HDR
%#define CKR_NEED_TO_CREATE_THREADS 0x00000009
#endif
#ifdef RPC_HDR
%#define CKR_CANT_LOCK 0x0000000A
#endif
#ifdef RPC_HDR
%#define CKR_ATTRIBUTE_READ_ONLY 0x00000010
#endif
#ifdef RPC_HDR
%#define CKR_ATTRIBUTE_SENSITIVE 0x00000011
#endif
#ifdef RPC_HDR
%#define CKR_ATTRIBUTE_TYPE_INVALID 0x00000012
#endif
#ifdef RPC_HDR
%#define CKR_ATTRIBUTE_VALUE_INVALID 0x00000013
#endif
#ifdef RPC_HDR
%#define CKR_DATA_INVALID 0x00000020
#endif
#ifdef RPC_HDR
%#define CKR_DATA_LEN_RANGE 0x00000021
#endif
#ifdef RPC_HDR
%#define CKR_DEVICE_ERROR 0x00000030
#endif
#ifdef RPC_HDR
%#define CKR_DEVICE_MEMORY 0x00000031
#endif
#ifdef RPC_HDR
%#define CKR_DEVICE_REMOVED 0x00000032
#endif
#ifdef RPC_HDR
%#define CKR_ENCRYPTED_DATA_INVALID 0x00000040
#endif
#ifdef RPC_HDR
%#define CKR_ENCRYPTED_DATA_LEN_RANGE 0x00000041
#endif
#ifdef RPC_HDR
%#define CKR_FUNCTION_CANCELED 0x00000050
#endif
#ifdef RPC_HDR
%#define CKR_FUNCTION_NOT_PARALLEL 0x00000051
#endif
#ifdef RPC_HDR
%#define CKR_FUNCTION_NOT_SUPPORTED 0x00000054
#endif
#ifdef RPC_HDR
%#define CKR_KEY_HANDLE_INVALID 0x00000060
#endif
#ifdef RPC_HDR
%#define CKR_KEY_SIZE_RANGE 0x00000062
#endif
#ifdef RPC_HDR
%#define CKR_KEY_TYPE_INCONSISTENT 0x00000063
#endif
#ifdef RPC_HDR
%#define CKR_KEY_NOT_NEEDED 0x00000064
#endif
#ifdef RPC_HDR
%#define CKR_KEY_CHANGED 0x00000065
#endif
#ifdef RPC_HDR
%#define CKR_KEY_NEEDED 0x00000066
#endif
#ifdef RPC_HDR
%#define CKR_KEY_INDIGESTIBLE 0x00000067
#endif
#ifdef RPC_HDR
%#define CKR_KEY_FUNCTION_NOT_PERMITTED 0x00000068
#endif
#ifdef RPC_HDR
%#define CKR_KEY_NOT_WRAPPABLE 0x00000069
#endif
#ifdef RPC_HDR
%#define CKR_KEY_UNEXTRACTABLE 0x0000006A
#endif
#ifdef RPC_HDR
%#define CKR_MECHANISM_INVALID 0x00000070
#endif
#ifdef RPC_HDR
%#define CKR_MECHANISM_PARAM_INVALID 0x00000071
#endif
#ifdef RPC_HDR
%#define CKR_OBJECT_HANDLE_INVALID 0x00000082
#endif
#ifdef RPC_HDR
%#define CKR_OPERATION_ACTIVE 0x00000090
#endif
#ifdef RPC_HDR
%#define CKR_OPERATION_NOT_INITIALIZED 0x00000091
#endif
#ifdef RPC_HDR
%#define CKR_PIN_INCORRECT 0x000000A0
#endif
#ifdef RPC_HDR
%#define CKR_PIN_INVALID 0x000000A1
#endif
#ifdef RPC_HDR
%#define CKR_PIN_LEN_RANGE 0x000000A2
#endif
#ifdef RPC_HDR
%#define CKR_PIN_EXPIRED 0x000000A3
#endif
#ifdef RPC_HDR
%#define CKR_PIN_LOCKED 0x000000A4
#endif
#ifdef RPC_HDR
%#define CKR_SESSION_CLOSED 0x000000B0
#endif
#ifdef RPC_HDR
%#define CKR_SESSION_COUNT 0x000000B1
#endif
#ifdef RPC_HDR
%#define CKR_SESSION_HANDLE_INVALID 0x000000B3
#endif
#ifdef RPC_HDR
%#define CKR_SESSION_PARALLEL_NOT_SUPPORTED 0x000000B4
#endif
#ifdef RPC_HDR
%#define CKR_SESSION_READ_ONLY 0x000000B5
#endif
#ifdef RPC_HDR
%#define CKR_SESSION_EXISTS 0x000000B6
#endif
#ifdef RPC_HDR
%#define CKR_SESSION_READ_ONLY_EXISTS 0x000000B7
#endif
#ifdef RPC_HDR
%#define CKR_SESSION_READ_WRITE_SO_EXISTS 0x000000B8
#endif
#ifdef RPC_HDR
%#define CKR_SIGNATURE_INVALID 0x000000C0
#endif
#ifdef RPC_HDR
%#define CKR_SIGNATURE_LEN_RANGE 0x000000C1
#endif
#ifdef RPC_HDR
%#define CKR_TEMPLATE_INCOMPLETE 0x000000D0
#endif
#ifdef RPC_HDR
%#define CKR_TEMPLATE_INCONSISTENT 0x000000D1
#endif
#ifdef RPC_HDR
%#define CKR_TOKEN_NOT_PRESENT 0x000000E0
#endif
#ifdef RPC_HDR
%#define CKR_TOKEN_NOT_RECOGNIZED 0x000000E1
#endif
#ifdef RPC_HDR
%#define CKR_TOKEN_WRITE_PROTECTED 0x000000E2
#endif
#ifdef RPC_HDR
%#define CKR_UNWRAPPING_KEY_HANDLE_INVALID 0x000000F0
#endif
#ifdef RPC_HDR
%#define CKR_UNWRAPPING_KEY_SIZE_RANGE 0x000000F1
#endif
#ifdef RPC_HDR
%#define CKR_UNWRAPPING_KEY_TYPE_INCONSISTENT 0x000000F2
#endif
#ifdef RPC_HDR
%#define CKR_USER_ALREADY_LOGGED_IN 0x00000100
#endif
#ifdef RPC_HDR
%#define CKR_USER_NOT_LOGGED_IN 0x00000101
#endif
#ifdef RPC_HDR
%#define CKR_USER_PIN_NOT_INITIALIZED 0x00000102
#endif
#ifdef RPC_HDR
%#define CKR_USER_TYPE_INVALID 0x00000103
#endif
#ifdef RPC_HDR
%#define CKR_USER_ANOTHER_ALREADY_LOGGED_IN 0x00000104
#endif
#ifdef RPC_HDR
%#define CKR_USER_TOO_MANY_TYPES 0x00000105
#endif
#ifdef RPC_HDR
%#define CKR_WRAPPED_KEY_INVALID 0x00000110
#endif
#ifdef RPC_HDR
%#define CKR_WRAPPED_KEY_LEN_RANGE 0x00000112
#endif
#ifdef RPC_HDR
%#define CKR_WRAPPING_KEY_HANDLE_INVALID 0x00000113
#endif
#ifdef RPC_HDR
%#define CKR_WRAPPING_KEY_SIZE_RANGE 0x00000114
#endif
#ifdef RPC_HDR
%#define CKR_WRAPPING_KEY_TYPE_INCONSISTENT 0x00000115
#endif
#ifdef RPC_HDR
%#define CKR_RANDOM_SEED_NOT_SUPPORTED 0x00000120
#endif
#ifdef RPC_HDR
%#define CKR_RANDOM_NO_RNG 0x00000121
#endif
#ifdef RPC_HDR
%#define CKR_DOMAIN_PARAMS_INVALID 0x00000130
#endif
#ifdef RPC_HDR
%#define CKR_BUFFER_TOO_SMALL 0x00000150
#endif
#ifdef RPC_HDR
%#define CKR_SAVED_STATE_INVALID 0x00000160
#endif
#ifdef RPC_HDR
%#define CKR_INFORMATION_SENSITIVE 0x00000170
#endif
#ifdef RPC_HDR
%#define CKR_STATE_UNSAVEABLE 0x00000180
#endif
#ifdef RPC_HDR
%#define CKR_CRYPTOKI_NOT_INITIALIZED 0x00000190
#endif
#ifdef RPC_HDR
%#define CKR_CRYPTOKI_ALREADY_INITIALIZED 0x00000191
#endif
#ifdef RPC_HDR
%#define CKR_MUTEX_BAD 0x000001A0
#endif
#ifdef RPC_HDR
%#define CKR_MUTEX_NOT_LOCKED 0x000001A1
#endif
#ifdef RPC_HDR
%#define CKR_VENDOR_DEFINED 0x80000000
#endif
#ifdef RPC_HDR
%#define CKF_LIBRARY_CANT_CREATE_OS_THREADS 0x00000001
#endif
#ifdef RPC_HDR
%#define CKF_OS_LOCKING_OK 0x00000002
#endif
#ifdef RPC_HDR
%#define CKF_DONT_BLOCK 1
#endif
struct CK_KEA_DERIVE_PARAMS {
	CK_BBOOL isSender;
	CK_ULONG ulRandomLen;
	CK_BYTE_PTR * pRandomA;
	CK_BYTE_PTR * pRandomB;
	CK_ULONG ulPublicDataLen;
	CK_BYTE_PTR * pPublicData;
};
typedef struct CK_KEA_DERIVE_PARAMS CK_KEA_DERIVE_PARAMS;
struct REMOTE_CK_KEA_DERIVE_PARAMS {
	REMOTE_CK_BBOOL isSender;
	REMOTE_CK_ULONG ulRandomLen;
	REMOTE_CK_BYTE pRandomA<>;
	REMOTE_CK_BYTE pRandomB<>;
	REMOTE_CK_ULONG ulPublicDataLen;
	REMOTE_CK_BYTE pPublicData<>;
};
typedef struct REMOTE_CK_KEA_DERIVE_PARAMS REMOTE_CK_KEA_DERIVE_PARAMS;
typedef  CK_KEA_DERIVE_PARAMS * CK_KEA_DERIVE_PARAMS_PTR;
typedef  REMOTE_CK_KEA_DERIVE_PARAMS * REMOTE_CK_KEA_DERIVE_PARAMS_PTR;
typedef  CK_ULONG CK_RC2_PARAMS;
typedef  REMOTE_CK_ULONG REMOTE_CK_RC2_PARAMS;
typedef  CK_RC2_PARAMS * CK_RC2_PARAMS_PTR;
typedef  REMOTE_CK_RC2_PARAMS * REMOTE_CK_RC2_PARAMS_PTR;
struct CK_RC2_CBC_PARAMS {
	CK_ULONG ulEffectiveBits;
	CK_BYTE iv[8];
};
typedef struct CK_RC2_CBC_PARAMS CK_RC2_CBC_PARAMS;
struct REMOTE_CK_RC2_CBC_PARAMS {
	REMOTE_CK_ULONG ulEffectiveBits;
	REMOTE_CK_BYTE iv[8];
};
typedef struct REMOTE_CK_RC2_CBC_PARAMS REMOTE_CK_RC2_CBC_PARAMS;
typedef  CK_RC2_CBC_PARAMS * CK_RC2_CBC_PARAMS_PTR;
typedef  REMOTE_CK_RC2_CBC_PARAMS * REMOTE_CK_RC2_CBC_PARAMS_PTR;
struct CK_RC2_MAC_GENERAL_PARAMS {
	CK_ULONG ulEffectiveBits;
	CK_ULONG ulMacLength;
};
typedef struct CK_RC2_MAC_GENERAL_PARAMS CK_RC2_MAC_GENERAL_PARAMS;
struct REMOTE_CK_RC2_MAC_GENERAL_PARAMS {
	REMOTE_CK_ULONG ulEffectiveBits;
	REMOTE_CK_ULONG ulMacLength;
};
typedef struct REMOTE_CK_RC2_MAC_GENERAL_PARAMS REMOTE_CK_RC2_MAC_GENERAL_PARAMS;
typedef  CK_RC2_MAC_GENERAL_PARAMS * CK_RC2_MAC_GENERAL_PARAMS_PTR;
typedef  REMOTE_CK_RC2_MAC_GENERAL_PARAMS * REMOTE_CK_RC2_MAC_GENERAL_PARAMS_PTR;
struct CK_RC5_PARAMS {
	CK_ULONG ulWordsize;
	CK_ULONG ulRounds;
};
typedef struct CK_RC5_PARAMS CK_RC5_PARAMS;
struct REMOTE_CK_RC5_PARAMS {
	REMOTE_CK_ULONG ulWordsize;
	REMOTE_CK_ULONG ulRounds;
};
typedef struct REMOTE_CK_RC5_PARAMS REMOTE_CK_RC5_PARAMS;
typedef  CK_RC5_PARAMS * CK_RC5_PARAMS_PTR;
typedef  REMOTE_CK_RC5_PARAMS * REMOTE_CK_RC5_PARAMS_PTR;
struct CK_RC5_CBC_PARAMS {
	CK_ULONG ulWordsize;
	CK_ULONG ulRounds;
	CK_BYTE_PTR * pIv;
	CK_ULONG ulIvLen;
};
typedef struct CK_RC5_CBC_PARAMS CK_RC5_CBC_PARAMS;
struct REMOTE_CK_RC5_CBC_PARAMS {
	REMOTE_CK_ULONG ulWordsize;
	REMOTE_CK_ULONG ulRounds;
	REMOTE_CK_BYTE pIv<>;
	REMOTE_CK_ULONG ulIvLen;
};
typedef struct REMOTE_CK_RC5_CBC_PARAMS REMOTE_CK_RC5_CBC_PARAMS;
typedef  CK_RC5_CBC_PARAMS * CK_RC5_CBC_PARAMS_PTR;
typedef  REMOTE_CK_RC5_CBC_PARAMS * REMOTE_CK_RC5_CBC_PARAMS_PTR;
struct CK_RC5_MAC_GENERAL_PARAMS {
	CK_ULONG ulWordsize;
	CK_ULONG ulRounds;
	CK_ULONG ulMacLength;
};
typedef struct CK_RC5_MAC_GENERAL_PARAMS CK_RC5_MAC_GENERAL_PARAMS;
struct REMOTE_CK_RC5_MAC_GENERAL_PARAMS {
	REMOTE_CK_ULONG ulWordsize;
	REMOTE_CK_ULONG ulRounds;
	REMOTE_CK_ULONG ulMacLength;
};
typedef struct REMOTE_CK_RC5_MAC_GENERAL_PARAMS REMOTE_CK_RC5_MAC_GENERAL_PARAMS;
typedef  CK_RC5_MAC_GENERAL_PARAMS * CK_RC5_MAC_GENERAL_PARAMS_PTR;
typedef  REMOTE_CK_RC5_MAC_GENERAL_PARAMS * REMOTE_CK_RC5_MAC_GENERAL_PARAMS_PTR;
typedef  CK_ULONG CK_MAC_GENERAL_PARAMS;
typedef  REMOTE_CK_ULONG REMOTE_CK_MAC_GENERAL_PARAMS;
typedef  CK_MAC_GENERAL_PARAMS * CK_MAC_GENERAL_PARAMS_PTR;
typedef  REMOTE_CK_MAC_GENERAL_PARAMS * REMOTE_CK_MAC_GENERAL_PARAMS_PTR;
struct CK_SKIPJACK_PRIVATE_WRAP_PARAMS {
	CK_ULONG ulPasswordLen;
	CK_BYTE_PTR * pPassword;
	CK_ULONG ulPublicDataLen;
	CK_BYTE_PTR * pPublicData;
	CK_ULONG ulPAndGLen;
	CK_ULONG ulQLen;
	CK_ULONG ulRandomLen;
	CK_BYTE_PTR * pRandomA;
	CK_BYTE_PTR * pPrimeP;
	CK_BYTE_PTR * pBaseG;
	CK_BYTE_PTR * pSubprimeQ;
};
typedef struct CK_SKIPJACK_PRIVATE_WRAP_PARAMS CK_SKIPJACK_PRIVATE_WRAP_PARAMS;
struct REMOTE_CK_SKIPJACK_PRIVATE_WRAP_PARAMS {
	REMOTE_CK_ULONG ulPasswordLen;
	REMOTE_CK_BYTE pPassword<>;
	REMOTE_CK_ULONG ulPublicDataLen;
	REMOTE_CK_BYTE pPublicData<>;
	REMOTE_CK_ULONG ulPAndGLen;
	REMOTE_CK_ULONG ulQLen;
	REMOTE_CK_ULONG ulRandomLen;
	REMOTE_CK_BYTE pRandomA<>;
	REMOTE_CK_BYTE pPrimeP<>;
	REMOTE_CK_BYTE pBaseG<>;
	REMOTE_CK_BYTE pSubprimeQ<>;
};
typedef struct REMOTE_CK_SKIPJACK_PRIVATE_WRAP_PARAMS REMOTE_CK_SKIPJACK_PRIVATE_WRAP_PARAMS;
typedef  CK_SKIPJACK_PRIVATE_WRAP_PARAMS * CK_SKIPJACK_PRIVATE_WRAP_PTR;
typedef  REMOTE_CK_SKIPJACK_PRIVATE_WRAP_PARAMS * REMOTE_CK_SKIPJACK_PRIVATE_WRAP_PTR;
struct CK_SKIPJACK_RELAYX_PARAMS {
	CK_ULONG ulOldWrappedXLen;
	CK_BYTE_PTR * pOldWrappedX;
	CK_ULONG ulOldPasswordLen;
	CK_BYTE_PTR * pOldPassword;
	CK_ULONG ulOldPublicDataLen;
	CK_BYTE_PTR * pOldPublicData;
	CK_ULONG ulOldRandomLen;
	CK_BYTE_PTR * pOldRandomA;
	CK_ULONG ulNewPasswordLen;
	CK_BYTE_PTR * pNewPassword;
	CK_ULONG ulNewPublicDataLen;
	CK_BYTE_PTR * pNewPublicData;
	CK_ULONG ulNewRandomLen;
	CK_BYTE_PTR * pNewRandomA;
};
typedef struct CK_SKIPJACK_RELAYX_PARAMS CK_SKIPJACK_RELAYX_PARAMS;
struct REMOTE_CK_SKIPJACK_RELAYX_PARAMS {
	REMOTE_CK_ULONG ulOldWrappedXLen;
	REMOTE_CK_BYTE pOldWrappedX<>;
	REMOTE_CK_ULONG ulOldPasswordLen;
	REMOTE_CK_BYTE pOldPassword<>;
	REMOTE_CK_ULONG ulOldPublicDataLen;
	REMOTE_CK_BYTE pOldPublicData<>;
	REMOTE_CK_ULONG ulOldRandomLen;
	REMOTE_CK_BYTE pOldRandomA<>;
	REMOTE_CK_ULONG ulNewPasswordLen;
	REMOTE_CK_BYTE pNewPassword<>;
	REMOTE_CK_ULONG ulNewPublicDataLen;
	REMOTE_CK_BYTE pNewPublicData<>;
	REMOTE_CK_ULONG ulNewRandomLen;
	REMOTE_CK_BYTE pNewRandomA<>;
};
typedef struct REMOTE_CK_SKIPJACK_RELAYX_PARAMS REMOTE_CK_SKIPJACK_RELAYX_PARAMS;
typedef  CK_SKIPJACK_RELAYX_PARAMS * CK_SKIPJACK_RELAYX_PARAMS_PTR;
typedef  REMOTE_CK_SKIPJACK_RELAYX_PARAMS * REMOTE_CK_SKIPJACK_RELAYX_PARAMS_PTR;
struct CK_PBE_PARAMS {
	CK_CHAR_PTR * pInitVector;
	CK_CHAR_PTR * pPassword;
	CK_ULONG ulPasswordLen;
	CK_CHAR_PTR * pSalt;
	CK_ULONG ulSaltLen;
	CK_ULONG ulIteration;
};
typedef struct CK_PBE_PARAMS CK_PBE_PARAMS;
struct REMOTE_CK_PBE_PARAMS {
	REMOTE_CK_CHAR pInitVector<>;
	REMOTE_CK_CHAR pPassword<>;
	REMOTE_CK_ULONG ulPasswordLen;
	REMOTE_CK_CHAR pSalt<>;
	REMOTE_CK_ULONG ulSaltLen;
	REMOTE_CK_ULONG ulIteration;
};
typedef struct REMOTE_CK_PBE_PARAMS REMOTE_CK_PBE_PARAMS;
typedef  CK_PBE_PARAMS * CK_PBE_PARAMS_PTR;
typedef  REMOTE_CK_PBE_PARAMS * REMOTE_CK_PBE_PARAMS_PTR;
struct CK_KEY_WRAP_SET_OAEP_PARAMS {
	CK_BYTE bBC;
	CK_BYTE_PTR pX;
	CK_ULONG ulXLen;
};
typedef struct CK_KEY_WRAP_SET_OAEP_PARAMS CK_KEY_WRAP_SET_OAEP_PARAMS;
struct REMOTE_CK_KEY_WRAP_SET_OAEP_PARAMS {
	REMOTE_CK_BYTE bBC;
	REMOTE_CK_BYTE_PTR pX;
	REMOTE_CK_ULONG ulXLen;
};
typedef struct REMOTE_CK_KEY_WRAP_SET_OAEP_PARAMS REMOTE_CK_KEY_WRAP_SET_OAEP_PARAMS;
typedef  CK_KEY_WRAP_SET_OAEP_PARAMS * CK_KEY_WRAP_SET_OAEP_PARAMS_PTR;
typedef  REMOTE_CK_KEY_WRAP_SET_OAEP_PARAMS * REMOTE_CK_KEY_WRAP_SET_OAEP_PARAMS_PTR;
struct CK_SSL3_RANDOM_DATA {
	CK_BYTE_PTR * pClientRandom;
	CK_ULONG ulClientRandomLen;
	CK_BYTE_PTR * pServerRandom;
	CK_ULONG ulServerRandomLen;
};
typedef struct CK_SSL3_RANDOM_DATA CK_SSL3_RANDOM_DATA;
struct REMOTE_CK_SSL3_RANDOM_DATA {
	REMOTE_CK_BYTE pClientRandom<>;
	REMOTE_CK_ULONG ulClientRandomLen;
	REMOTE_CK_BYTE pServerRandom<>;
	REMOTE_CK_ULONG ulServerRandomLen;
};
typedef struct REMOTE_CK_SSL3_RANDOM_DATA REMOTE_CK_SSL3_RANDOM_DATA;
struct CK_SSL3_MASTER_KEY_DERIVE_PARAMS {
	CK_SSL3_RANDOM_DATA RandomInfo;
	CK_VERSION_PTR pVersion;
};
typedef struct CK_SSL3_MASTER_KEY_DERIVE_PARAMS CK_SSL3_MASTER_KEY_DERIVE_PARAMS;
struct REMOTE_CK_SSL3_MASTER_KEY_DERIVE_PARAMS {
	REMOTE_CK_SSL3_RANDOM_DATA RandomInfo;
	REMOTE_CK_VERSION_PTR pVersion;
};
typedef struct REMOTE_CK_SSL3_MASTER_KEY_DERIVE_PARAMS REMOTE_CK_SSL3_MASTER_KEY_DERIVE_PARAMS;
typedef  CK_SSL3_MASTER_KEY_DERIVE_PARAMS * CK_SSL3_MASTER_KEY_DERIVE_PARAMS_PTR;
typedef  REMOTE_CK_SSL3_MASTER_KEY_DERIVE_PARAMS * REMOTE_CK_SSL3_MASTER_KEY_DERIVE_PARAMS_PTR;
struct CK_SSL3_KEY_MAT_OUT {
	CK_OBJECT_HANDLE hClientMacSecret;
	CK_OBJECT_HANDLE hServerMacSecret;
	CK_OBJECT_HANDLE hClientKey;
	CK_OBJECT_HANDLE hServerKey;
	CK_BYTE_PTR * pIVClient;
	CK_BYTE_PTR * pIVServer;
};
typedef struct CK_SSL3_KEY_MAT_OUT CK_SSL3_KEY_MAT_OUT;
struct REMOTE_CK_SSL3_KEY_MAT_OUT {
	REMOTE_CK_OBJECT_HANDLE hClientMacSecret;
	REMOTE_CK_OBJECT_HANDLE hServerMacSecret;
	REMOTE_CK_OBJECT_HANDLE hClientKey;
	REMOTE_CK_OBJECT_HANDLE hServerKey;
	REMOTE_CK_BYTE pIVClient<>;
	REMOTE_CK_BYTE pIVServer<>;
};
typedef struct REMOTE_CK_SSL3_KEY_MAT_OUT REMOTE_CK_SSL3_KEY_MAT_OUT;
typedef  CK_SSL3_KEY_MAT_OUT * CK_SSL3_KEY_MAT_OUT_PTR;
typedef  REMOTE_CK_SSL3_KEY_MAT_OUT * REMOTE_CK_SSL3_KEY_MAT_OUT_PTR;
struct CK_SSL3_KEY_MAT_PARAMS {
	CK_ULONG ulMacSizeInBits;
	CK_ULONG ulKeySizeInBits;
	CK_ULONG ulIVSizeInBits;
	CK_BBOOL bIsExport;
	CK_SSL3_RANDOM_DATA RandomInfo;
	CK_SSL3_KEY_MAT_OUT_PTR pReturnedKeyMaterial;
};
typedef struct CK_SSL3_KEY_MAT_PARAMS CK_SSL3_KEY_MAT_PARAMS;
struct REMOTE_CK_SSL3_KEY_MAT_PARAMS {
	REMOTE_CK_ULONG ulMacSizeInBits;
	REMOTE_CK_ULONG ulKeySizeInBits;
	REMOTE_CK_ULONG ulIVSizeInBits;
	REMOTE_CK_BBOOL bIsExport;
	REMOTE_CK_SSL3_RANDOM_DATA RandomInfo;
	REMOTE_CK_SSL3_KEY_MAT_OUT_PTR pReturnedKeyMaterial;
};
typedef struct REMOTE_CK_SSL3_KEY_MAT_PARAMS REMOTE_CK_SSL3_KEY_MAT_PARAMS;
typedef  CK_SSL3_KEY_MAT_PARAMS * CK_SSL3_KEY_MAT_PARAMS_PTR;
typedef  REMOTE_CK_SSL3_KEY_MAT_PARAMS * REMOTE_CK_SSL3_KEY_MAT_PARAMS_PTR;
struct CK_KEY_DERIVATION_STRING_DATA {
	CK_BYTE_PTR * pData;
	CK_ULONG ulLen;
};
typedef struct CK_KEY_DERIVATION_STRING_DATA CK_KEY_DERIVATION_STRING_DATA;
struct REMOTE_CK_KEY_DERIVATION_STRING_DATA {
	REMOTE_CK_BYTE pData<>;
	REMOTE_CK_ULONG ulLen;
};
typedef struct REMOTE_CK_KEY_DERIVATION_STRING_DATA REMOTE_CK_KEY_DERIVATION_STRING_DATA;
typedef  CK_KEY_DERIVATION_STRING_DATA * CK_KEY_DERIVATION_STRING_DATA_PTR;
typedef  REMOTE_CK_KEY_DERIVATION_STRING_DATA * REMOTE_CK_KEY_DERIVATION_STRING_DATA_PTR;
typedef  CK_ULONG CK_EXTRACT_PARAMS;
typedef  REMOTE_CK_ULONG REMOTE_CK_EXTRACT_PARAMS;
typedef  CK_EXTRACT_PARAMS * CK_EXTRACT_PARAMS_PTR;
typedef  REMOTE_CK_EXTRACT_PARAMS * REMOTE_CK_EXTRACT_PARAMS_PTR;
#ifdef RPC_HDR
%typedef CK_RV (*CK_C_Initialize)(CK_VOID_PTR pReserved);
#endif
#ifdef RPC_HDR
%typedef CK_RV (*CK_C_Finalize)(CK_VOID_PTR pReserved);
#endif
#ifdef RPC_HDR
%typedef CK_RV (*CK_C_Terminate)();
#endif
#ifdef RPC_HDR
%typedef CK_RV (*CK_C_GetInfo)(CK_INFO_PTR pInfo);
#endif
#ifdef RPC_HDR
%typedef CK_RV (*CK_C_GetSlotList)(CK_BBOOL tokenPresent, CK_SLOT_ID_PTR pSlotList, CK_ULONG_PTR pusCount);
#endif
#ifdef RPC_HDR
%typedef CK_RV (*CK_C_GetSlotInfo)(CK_SLOT_ID slotID, CK_SLOT_INFO_PTR pInfo);
#endif
#ifdef RPC_HDR
%typedef CK_RV (*CK_C_GetTokenInfo)(CK_SLOT_ID slotID, CK_TOKEN_INFO_PTR pInfo);
#endif
#ifdef RPC_HDR
%typedef CK_RV (*CK_C_GetMechanismList)(CK_SLOT_ID slotID, CK_MECHANISM_TYPE_PTR pMechanismList, CK_ULONG_PTR pusCount);
#endif
#ifdef RPC_HDR
%typedef CK_RV (*CK_C_GetMechanismInfo)(CK_SLOT_ID slotID, CK_MECHANISM_TYPE type, CK_MECHANISM_INFO_PTR pInfo);
#endif
#ifdef RPC_HDR
%typedef CK_RV (*CK_C_InitToken)(CK_SLOT_ID slotID, CK_CHAR_PTR pPin, CK_ULONG usPinLen, CK_CHAR_PTR pLabel);
#endif
#ifdef RPC_HDR
%typedef CK_RV (*CK_C_InitPIN)(CK_SESSION_HANDLE hSession, CK_CHAR_PTR pPin, CK_ULONG usPinLen);
#endif
#ifdef RPC_HDR
%typedef CK_RV (*CK_C_SetPIN)(CK_SESSION_HANDLE hSession, CK_CHAR_PTR pOldPin, CK_ULONG usOldLen, CK_CHAR_PTR pNewPin, CK_ULONG usNewLen);
#endif
#ifdef RPC_HDR
%typedef CK_RV (*CK_C_OpenSession)(CK_SLOT_ID slotID, CK_FLAGS flags, CK_VOID_PTR pApplication, CK_VOID_PTR notify, CK_SESSION_HANDLE_PTR phSession);
#endif
#ifdef RPC_HDR
%typedef CK_RV (*CK_C_CloseSession)(CK_SESSION_HANDLE hSession);
#endif
#ifdef RPC_HDR
%typedef CK_RV (*CK_C_CloseAllSessions)(CK_SLOT_ID slotID);
#endif
#ifdef RPC_HDR
%typedef CK_RV (*CK_C_GetSessionInfo)(CK_SESSION_HANDLE hSession, CK_SESSION_INFO_PTR pInfo);
#endif
#ifdef RPC_HDR
%typedef CK_RV (*CK_C_GetOperationState)(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pOperationState, CK_ULONG_PTR pulOperationStateLen);
#endif
#ifdef RPC_HDR
%typedef CK_RV (*CK_C_SetOperationState)(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pOperationState, CK_ULONG ulOperationStateLen, CK_OBJECT_HANDLE hEncryptionKey, CK_OBJECT_HANDLE hAuthenticationKey);
#endif
#ifdef RPC_HDR
%typedef CK_RV (*CK_C_Login)(CK_SESSION_HANDLE hSession, CK_USER_TYPE userType, CK_CHAR_PTR pPin, CK_ULONG usPinLen);
#endif
#ifdef RPC_HDR
%typedef CK_RV (*CK_C_Logout)(CK_SESSION_HANDLE hSession);
#endif
#ifdef RPC_HDR
%typedef CK_RV (*CK_C_CreateObject)(CK_SESSION_HANDLE hSession, CK_ATTRIBUTE_PTR pTemplate, CK_ULONG usCount, CK_OBJECT_HANDLE_PTR phObject);
#endif
#ifdef RPC_HDR
%typedef CK_RV (*CK_C_CopyObject)(CK_SESSION_HANDLE hSession, CK_OBJECT_HANDLE hObject, CK_ATTRIBUTE_PTR pTemplate, CK_ULONG usCount, CK_OBJECT_HANDLE_PTR phNewObject);
#endif
#ifdef RPC_HDR
%typedef CK_RV (*CK_C_DestroyObject)(CK_SESSION_HANDLE hSession, CK_OBJECT_HANDLE hObject);
#endif
#ifdef RPC_HDR
%typedef CK_RV (*CK_C_GetObjectSize)(CK_SESSION_HANDLE hSession, CK_OBJECT_HANDLE hObject, CK_ULONG_PTR pusSize);
#endif
#ifdef RPC_HDR
%typedef CK_RV (*CK_C_GetAttributeValue)(CK_SESSION_HANDLE hSession, CK_OBJECT_HANDLE hObject, CK_ATTRIBUTE_PTR pTemplate, CK_ULONG usCount);
#endif
#ifdef RPC_HDR
%typedef CK_RV (*CK_C_SetAttributeValue)(CK_SESSION_HANDLE hSession, CK_OBJECT_HANDLE hObject, CK_ATTRIBUTE_PTR pTemplate, CK_ULONG usCount);
#endif
#ifdef RPC_HDR
%typedef CK_RV (*CK_C_FindObjectsInit)(CK_SESSION_HANDLE hSession, CK_ATTRIBUTE_PTR pTemplate, CK_ULONG usCount);
#endif
#ifdef RPC_HDR
%typedef CK_RV (*CK_C_FindObjects)(CK_SESSION_HANDLE hSession, CK_OBJECT_HANDLE_PTR phObject, CK_ULONG usMaxObjectCount, CK_ULONG_PTR pusObjectCount);
#endif
#ifdef RPC_HDR
%typedef CK_RV (*CK_C_FindObjectsFinal)(CK_SESSION_HANDLE hSession);
#endif
#ifdef RPC_HDR
%typedef CK_RV (*CK_C_EncryptInit)(CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism, CK_OBJECT_HANDLE hKey);
#endif
#ifdef RPC_HDR
%typedef CK_RV (*CK_C_Encrypt)(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pData, CK_ULONG usDataLen, CK_BYTE_PTR pEncryptedData, CK_ULONG_PTR pusEncryptedDataLen);
#endif
#ifdef RPC_HDR
%typedef CK_RV (*CK_C_EncryptUpdate)(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pPart, CK_ULONG usPartLen, CK_BYTE_PTR pEncryptedPart, CK_ULONG_PTR pusEncryptedPartLen);
#endif
#ifdef RPC_HDR
%typedef CK_RV (*CK_C_EncryptFinal)(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pLastEncryptedPart, CK_ULONG_PTR pusLastEncryptedPartLen);
#endif
#ifdef RPC_HDR
%typedef CK_RV (*CK_C_DecryptInit)(CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism, CK_OBJECT_HANDLE hKey);
#endif
#ifdef RPC_HDR
%typedef CK_RV (*CK_C_Decrypt)(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pEncryptedData, CK_ULONG usEncryptedDataLen, CK_BYTE_PTR pData, CK_ULONG_PTR pusDataLen);
#endif
#ifdef RPC_HDR
%typedef CK_RV (*CK_C_DecryptUpdate)(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pEncryptedPart, CK_ULONG usEncryptedPartLen, CK_BYTE_PTR pPart, CK_ULONG_PTR pusPartLen);
#endif
#ifdef RPC_HDR
%typedef CK_RV (*CK_C_DecryptFinal)(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pLastPart, CK_ULONG_PTR pusLastPartLen);
#endif
#ifdef RPC_HDR
%typedef CK_RV (*CK_C_DigestInit)(CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism);
#endif
#ifdef RPC_HDR
%typedef CK_RV (*CK_C_Digest)(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pData, CK_ULONG usDataLen, CK_BYTE_PTR pDigest, CK_ULONG_PTR pusDigestLen);
#endif
#ifdef RPC_HDR
%typedef CK_RV (*CK_C_DigestUpdate)(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pPart, CK_ULONG usPartLen);
#endif
#ifdef RPC_HDR
%typedef CK_RV (*CK_C_DigestKey)(CK_SESSION_HANDLE hSession, CK_OBJECT_HANDLE hKey);
#endif
#ifdef RPC_HDR
%typedef CK_RV (*CK_C_DigestFinal)(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pDigest, CK_ULONG_PTR pusDigestLen);
#endif
#ifdef RPC_HDR
%typedef CK_RV (*CK_C_SignInit)(CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism, CK_OBJECT_HANDLE hKey);
#endif
#ifdef RPC_HDR
%typedef CK_RV (*CK_C_Sign)(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pData, CK_ULONG usDataLen, CK_BYTE_PTR pSignature, CK_ULONG_PTR pusSignatureLen);
#endif
#ifdef RPC_HDR
%typedef CK_RV (*CK_C_SignUpdate)(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pPart, CK_ULONG usPartLen);
#endif
#ifdef RPC_HDR
%typedef CK_RV (*CK_C_SignFinal)(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pSignature, CK_ULONG_PTR pusSignatureLen);
#endif
#ifdef RPC_HDR
%typedef CK_RV (*CK_C_SignRecoverInit)(CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism, CK_OBJECT_HANDLE hKey);
#endif
#ifdef RPC_HDR
%typedef CK_RV (*CK_C_SignRecover)(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pData, CK_ULONG usDataLen, CK_BYTE_PTR pSignature, CK_ULONG_PTR pusSignatureLen);
#endif
#ifdef RPC_HDR
%typedef CK_RV (*CK_C_VerifyInit)(CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism, CK_OBJECT_HANDLE hKey);
#endif
#ifdef RPC_HDR
%typedef CK_RV (*CK_C_Verify)(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pData, CK_ULONG usDataLen, CK_BYTE_PTR pSignature, CK_ULONG usSignatureLen);
#endif
#ifdef RPC_HDR
%typedef CK_RV (*CK_C_VerifyUpdate)(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pPart, CK_ULONG usPartLen);
#endif
#ifdef RPC_HDR
%typedef CK_RV (*CK_C_VerifyFinal)(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pSignature, CK_ULONG usSignatureLen);
#endif
#ifdef RPC_HDR
%typedef CK_RV (*CK_C_VerifyRecoverInit)(CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism, CK_OBJECT_HANDLE hKey);
#endif
#ifdef RPC_HDR
%typedef CK_RV (*CK_C_VerifyRecover)(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pSignature, CK_ULONG usSignatureLen, CK_BYTE_PTR pData, CK_ULONG_PTR pusDataLen);
#endif
#ifdef RPC_HDR
%typedef CK_RV (*CK_C_DigestEncryptUpdate)(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pPart, CK_ULONG ulPartLen, CK_BYTE_PTR pEncryptedPart, CK_ULONG_PTR pulEncryptedPartLen);
#endif
#ifdef RPC_HDR
%typedef CK_RV (*CK_C_DecryptDigestUpdate)(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pEncryptedPart, CK_ULONG ulEncryptedPartLen, CK_BYTE_PTR pPart, CK_ULONG_PTR pulPartLen);
#endif
#ifdef RPC_HDR
%typedef CK_RV (*CK_C_SignEncryptUpdate)(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pPart, CK_ULONG ulPartLen, CK_BYTE_PTR pEncryptedPart, CK_ULONG_PTR pulEncryptedPartLen);
#endif
#ifdef RPC_HDR
%typedef CK_RV (*CK_C_DecryptVerifyUpdate)(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pEncryptedPart, CK_ULONG ulEncryptedPartLen, CK_BYTE_PTR pPart, CK_ULONG_PTR pulPartLen);
#endif
#ifdef RPC_HDR
%typedef CK_RV (*CK_C_GenerateKey)(CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism, CK_ATTRIBUTE_PTR pTemplate, CK_ULONG usCount, CK_OBJECT_HANDLE_PTR phKey);
#endif
#ifdef RPC_HDR
%typedef CK_RV (*CK_C_GenerateKeyPair)(CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism, CK_ATTRIBUTE_PTR pPublicKeyTemplate, CK_ULONG usPublicKeyAttributeCount, CK_ATTRIBUTE_PTR pPrivateKeyTemplate, CK_ULONG usPrivateKeyAttributeCount, CK_OBJECT_HANDLE_PTR phPrivateKey, CK_OBJECT_HANDLE_PTR phPublicKey);
#endif
#ifdef RPC_HDR
%typedef CK_RV (*CK_C_WrapKey)(CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism, CK_OBJECT_HANDLE hWrappingKey, CK_OBJECT_HANDLE hKey, CK_BYTE_PTR pWrappedKey, CK_ULONG_PTR pusWrappedKeyLen);
#endif
#ifdef RPC_HDR
%typedef CK_RV (*CK_C_UnwrapKey)(CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism, CK_OBJECT_HANDLE hUnwrappingKey, CK_BYTE_PTR pWrappedKey, CK_ULONG usWrappedKeyLen, CK_ATTRIBUTE_PTR pTemplate, CK_ULONG usAttributeCount, CK_OBJECT_HANDLE_PTR phKey);
#endif
#ifdef RPC_HDR
%typedef CK_RV (*CK_C_DeriveKey)(CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism, CK_OBJECT_HANDLE hBaseKey, CK_ATTRIBUTE_PTR pTemplate, CK_ULONG usAttributeCount, CK_OBJECT_HANDLE_PTR phKey);
#endif
#ifdef RPC_HDR
%typedef CK_RV (*CK_C_SeedRandom)(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pSeed, CK_ULONG usSeedLen);
#endif
#ifdef RPC_HDR
%typedef CK_RV (*CK_C_GenerateRandom)(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pRandomData, CK_ULONG usRandomLen);
#endif
#ifdef RPC_HDR
%typedef CK_RV (*CK_C_GetFunctionStatus)(CK_SESSION_HANDLE hSession);
#endif
#ifdef RPC_HDR
%typedef CK_RV (*CK_C_CancelFunction)(CK_SESSION_HANDLE hSession);
#endif
#ifdef RPC_HDR
%typedef CK_RV (*CK_C_WaitForSlotEvent)(CK_FLAGS flags, CK_SLOT_ID_PTR pSlot, CK_VOID_PTR pReserved);
#endif
#ifdef RPC_HDR
%#ifdef __cplusplus
#endif
#ifdef RPC_HDR
%}
#endif
#ifdef RPC_HDR
%#endif
#endif
#ifdef RPC_HDR
%#endif
#endif
struct R_CK_C_Initialize_Param {
	REMOTE_CK_RV return_value;
	REMOTE_CK_VOID_PTR pReserved;
};
struct R_CK_C_Finalize_Param {
	REMOTE_CK_RV return_value;
	REMOTE_CK_VOID_PTR pReserved;
};
struct R_CK_C_Terminate_Param {
	REMOTE_CK_RV return_value;
};
struct R_CK_C_GetInfo_Param {
	REMOTE_CK_RV return_value;
	REMOTE_CK_INFO_PTR pInfo;
};
struct R_CK_C_GetSlotList_Param {
	REMOTE_CK_RV return_value;
	REMOTE_CK_BBOOL tokenPresent;
	REMOTE_CK_SLOT_ID pSlotList<>;
	REMOTE_CK_ULONG_PTR pusCount;
};
struct R_CK_C_GetSlotInfo_Param {
	REMOTE_CK_RV return_value;
	REMOTE_CK_SLOT_ID slotID;
	REMOTE_CK_SLOT_INFO_PTR pInfo;
};
struct R_CK_C_GetTokenInfo_Param {
	REMOTE_CK_RV return_value;
	REMOTE_CK_SLOT_ID slotID;
	REMOTE_CK_TOKEN_INFO_PTR pInfo;
};
struct R_CK_C_GetMechanismList_Param {
	REMOTE_CK_RV return_value;
	REMOTE_CK_SLOT_ID slotID;
	REMOTE_CK_MECHANISM_TYPE pMechanismList<>;
	REMOTE_CK_ULONG_PTR pusCount;
};
struct R_CK_C_GetMechanismInfo_Param {
	REMOTE_CK_RV return_value;
	REMOTE_CK_SLOT_ID slotID;
	REMOTE_CK_MECHANISM_TYPE type;
	REMOTE_CK_MECHANISM_INFO_PTR pInfo;
};
struct R_CK_C_InitToken_Param {
	REMOTE_CK_RV return_value;
	REMOTE_CK_SLOT_ID slotID;
	REMOTE_CK_CHAR pPin<>;
	REMOTE_CK_ULONG usPinLen;
	REMOTE_CK_CHAR pLabel<>;
};
struct R_CK_C_InitPIN_Param {
	REMOTE_CK_RV return_value;
	REMOTE_CK_SESSION_HANDLE hSession;
	REMOTE_CK_CHAR pPin<>;
	REMOTE_CK_ULONG usPinLen;
};
struct R_CK_C_SetPIN_Param {
	REMOTE_CK_RV return_value;
	REMOTE_CK_SESSION_HANDLE hSession;
	REMOTE_CK_CHAR pOldPin<>;
	REMOTE_CK_ULONG usOldLen;
	REMOTE_CK_CHAR pNewPin<>;
	REMOTE_CK_ULONG usNewLen;
};
struct R_CK_C_OpenSession_Param {
	REMOTE_CK_RV return_value;
	REMOTE_CK_SLOT_ID slotID;
	REMOTE_CK_FLAGS flags;
	REMOTE_CK_VOID_PTR pApplication;
	REMOTE_CK_VOID_PTR notify;
	REMOTE_CK_SESSION_HANDLE_PTR phSession;
};
struct R_CK_C_CloseSession_Param {
	REMOTE_CK_RV return_value;
	REMOTE_CK_SESSION_HANDLE hSession;
};
struct R_CK_C_CloseAllSessions_Param {
	REMOTE_CK_RV return_value;
	REMOTE_CK_SLOT_ID slotID;
};
struct R_CK_C_GetSessionInfo_Param {
	REMOTE_CK_RV return_value;
	REMOTE_CK_SESSION_HANDLE hSession;
	REMOTE_CK_SESSION_INFO_PTR pInfo;
};
struct R_CK_C_GetOperationState_Param {
	REMOTE_CK_RV return_value;
	REMOTE_CK_SESSION_HANDLE hSession;
	REMOTE_CK_BYTE pOperationState<>;
	REMOTE_CK_ULONG_PTR pulOperationStateLen;
};
struct R_CK_C_SetOperationState_Param {
	REMOTE_CK_RV return_value;
	REMOTE_CK_SESSION_HANDLE hSession;
	REMOTE_CK_BYTE pOperationState<>;
	REMOTE_CK_ULONG ulOperationStateLen;
	REMOTE_CK_OBJECT_HANDLE hEncryptionKey;
	REMOTE_CK_OBJECT_HANDLE hAuthenticationKey;
};
struct R_CK_C_Login_Param {
	REMOTE_CK_RV return_value;
	REMOTE_CK_SESSION_HANDLE hSession;
	REMOTE_CK_USER_TYPE userType;
	REMOTE_CK_CHAR pPin<>;
	REMOTE_CK_ULONG usPinLen;
};
struct R_CK_C_Logout_Param {
	REMOTE_CK_RV return_value;
	REMOTE_CK_SESSION_HANDLE hSession;
};
struct R_CK_C_CreateObject_Param {
	REMOTE_CK_RV return_value;
	REMOTE_CK_SESSION_HANDLE hSession;
	REMOTE_CK_ATTRIBUTE pTemplate<>;
	REMOTE_CK_ULONG usCount;
	REMOTE_CK_OBJECT_HANDLE_PTR phObject;
};
struct R_CK_C_CopyObject_Param {
	REMOTE_CK_RV return_value;
	REMOTE_CK_SESSION_HANDLE hSession;
	REMOTE_CK_OBJECT_HANDLE hObject;
	REMOTE_CK_ATTRIBUTE pTemplate<>;
	REMOTE_CK_ULONG usCount;
	REMOTE_CK_OBJECT_HANDLE_PTR phNewObject;
};
struct R_CK_C_DestroyObject_Param {
	REMOTE_CK_RV return_value;
	REMOTE_CK_SESSION_HANDLE hSession;
	REMOTE_CK_OBJECT_HANDLE hObject;
};
struct R_CK_C_GetObjectSize_Param {
	REMOTE_CK_RV return_value;
	REMOTE_CK_SESSION_HANDLE hSession;
	REMOTE_CK_OBJECT_HANDLE hObject;
	REMOTE_CK_ULONG_PTR pusSize;
};
struct R_CK_C_GetAttributeValue_Param {
	REMOTE_CK_RV return_value;
	REMOTE_CK_SESSION_HANDLE hSession;
	REMOTE_CK_OBJECT_HANDLE hObject;
	REMOTE_CK_ATTRIBUTE pTemplate<>;
	REMOTE_CK_ULONG usCount;
};
struct R_CK_C_SetAttributeValue_Param {
	REMOTE_CK_RV return_value;
	REMOTE_CK_SESSION_HANDLE hSession;
	REMOTE_CK_OBJECT_HANDLE hObject;
	REMOTE_CK_ATTRIBUTE pTemplate<>;
	REMOTE_CK_ULONG usCount;
};
struct R_CK_C_FindObjectsInit_Param {
	REMOTE_CK_RV return_value;
	REMOTE_CK_SESSION_HANDLE hSession;
	REMOTE_CK_ATTRIBUTE pTemplate<>;
	REMOTE_CK_ULONG usCount;
};
struct R_CK_C_FindObjects_Param {
	REMOTE_CK_RV return_value;
	REMOTE_CK_SESSION_HANDLE hSession;
	REMOTE_CK_OBJECT_HANDLE phObject<>;
	REMOTE_CK_ULONG usMaxObjectCount;
	REMOTE_CK_ULONG_PTR pusObjectCount;
};
struct R_CK_C_FindObjectsFinal_Param {
	REMOTE_CK_RV return_value;
	REMOTE_CK_SESSION_HANDLE hSession;
};
struct R_CK_C_EncryptInit_Param {
	REMOTE_CK_RV return_value;
	REMOTE_CK_SESSION_HANDLE hSession;
	REMOTE_CK_MECHANISM_PTR pMechanism;
	REMOTE_CK_OBJECT_HANDLE hKey;
};
struct R_CK_C_Encrypt_Param {
	REMOTE_CK_RV return_value;
	REMOTE_CK_SESSION_HANDLE hSession;
	REMOTE_CK_BYTE pData<>;
	REMOTE_CK_ULONG usDataLen;
	REMOTE_CK_BYTE pEncryptedData<>;
	REMOTE_CK_ULONG_PTR pusEncryptedDataLen;
};
struct R_CK_C_EncryptUpdate_Param {
	REMOTE_CK_RV return_value;
	REMOTE_CK_SESSION_HANDLE hSession;
	REMOTE_CK_BYTE pPart<>;
	REMOTE_CK_ULONG usPartLen;
	REMOTE_CK_BYTE pEncryptedPart<>;
	REMOTE_CK_ULONG_PTR pusEncryptedPartLen;
};
struct R_CK_C_EncryptFinal_Param {
	REMOTE_CK_RV return_value;
	REMOTE_CK_SESSION_HANDLE hSession;
	REMOTE_CK_BYTE pLastEncryptedPart<>;
	REMOTE_CK_ULONG_PTR pusLastEncryptedPartLen;
};
struct R_CK_C_DecryptInit_Param {
	REMOTE_CK_RV return_value;
	REMOTE_CK_SESSION_HANDLE hSession;
	REMOTE_CK_MECHANISM_PTR pMechanism;
	REMOTE_CK_OBJECT_HANDLE hKey;
};
struct R_CK_C_Decrypt_Param {
	REMOTE_CK_RV return_value;
	REMOTE_CK_SESSION_HANDLE hSession;
	REMOTE_CK_BYTE pEncryptedData<>;
	REMOTE_CK_ULONG usEncryptedDataLen;
	REMOTE_CK_BYTE pData<>;
	REMOTE_CK_ULONG_PTR pusDataLen;
};
struct R_CK_C_DecryptUpdate_Param {
	REMOTE_CK_RV return_value;
	REMOTE_CK_SESSION_HANDLE hSession;
	REMOTE_CK_BYTE pEncryptedPart<>;
	REMOTE_CK_ULONG usEncryptedPartLen;
	REMOTE_CK_BYTE pPart<>;
	REMOTE_CK_ULONG_PTR pusPartLen;
};
struct R_CK_C_DecryptFinal_Param {
	REMOTE_CK_RV return_value;
	REMOTE_CK_SESSION_HANDLE hSession;
	REMOTE_CK_BYTE pLastPart<>;
	REMOTE_CK_ULONG_PTR pusLastPartLen;
};
struct R_CK_C_DigestInit_Param {
	REMOTE_CK_RV return_value;
	REMOTE_CK_SESSION_HANDLE hSession;
	REMOTE_CK_MECHANISM_PTR pMechanism;
};
struct R_CK_C_Digest_Param {
	REMOTE_CK_RV return_value;
	REMOTE_CK_SESSION_HANDLE hSession;
	REMOTE_CK_BYTE pData<>;
	REMOTE_CK_ULONG usDataLen;
	REMOTE_CK_BYTE pDigest<>;
	REMOTE_CK_ULONG_PTR pusDigestLen;
};
struct R_CK_C_DigestUpdate_Param {
	REMOTE_CK_RV return_value;
	REMOTE_CK_SESSION_HANDLE hSession;
	REMOTE_CK_BYTE pPart<>;
	REMOTE_CK_ULONG usPartLen;
};
struct R_CK_C_DigestKey_Param {
	REMOTE_CK_RV return_value;
	REMOTE_CK_SESSION_HANDLE hSession;
	REMOTE_CK_OBJECT_HANDLE hKey;
};
struct R_CK_C_DigestFinal_Param {
	REMOTE_CK_RV return_value;
	REMOTE_CK_SESSION_HANDLE hSession;
	REMOTE_CK_BYTE pDigest<>;
	REMOTE_CK_ULONG_PTR pusDigestLen;
};
struct R_CK_C_SignInit_Param {
	REMOTE_CK_RV return_value;
	REMOTE_CK_SESSION_HANDLE hSession;
	REMOTE_CK_MECHANISM_PTR pMechanism;
	REMOTE_CK_OBJECT_HANDLE hKey;
};
struct R_CK_C_Sign_Param {
	REMOTE_CK_RV return_value;
	REMOTE_CK_SESSION_HANDLE hSession;
	REMOTE_CK_BYTE pData<>;
	REMOTE_CK_ULONG usDataLen;
	REMOTE_CK_BYTE pSignature<>;
	REMOTE_CK_ULONG_PTR pusSignatureLen;
};
struct R_CK_C_SignUpdate_Param {
	REMOTE_CK_RV return_value;
	REMOTE_CK_SESSION_HANDLE hSession;
	REMOTE_CK_BYTE pPart<>;
	REMOTE_CK_ULONG usPartLen;
};
struct R_CK_C_SignFinal_Param {
	REMOTE_CK_RV return_value;
	REMOTE_CK_SESSION_HANDLE hSession;
	REMOTE_CK_BYTE pSignature<>;
	REMOTE_CK_ULONG_PTR pusSignatureLen;
};
struct R_CK_C_SignRecoverInit_Param {
	REMOTE_CK_RV return_value;
	REMOTE_CK_SESSION_HANDLE hSession;
	REMOTE_CK_MECHANISM_PTR pMechanism;
	REMOTE_CK_OBJECT_HANDLE hKey;
};
struct R_CK_C_SignRecover_Param {
	REMOTE_CK_RV return_value;
	REMOTE_CK_SESSION_HANDLE hSession;
	REMOTE_CK_BYTE pData<>;
	REMOTE_CK_ULONG usDataLen;
	REMOTE_CK_BYTE pSignature<>;
	REMOTE_CK_ULONG_PTR pusSignatureLen;
};
struct R_CK_C_VerifyInit_Param {
	REMOTE_CK_RV return_value;
	REMOTE_CK_SESSION_HANDLE hSession;
	REMOTE_CK_MECHANISM_PTR pMechanism;
	REMOTE_CK_OBJECT_HANDLE hKey;
};
struct R_CK_C_Verify_Param {
	REMOTE_CK_RV return_value;
	REMOTE_CK_SESSION_HANDLE hSession;
	REMOTE_CK_BYTE pData<>;
	REMOTE_CK_ULONG usDataLen;
	REMOTE_CK_BYTE pSignature<>;
	REMOTE_CK_ULONG usSignatureLen;
};
struct R_CK_C_VerifyUpdate_Param {
	REMOTE_CK_RV return_value;
	REMOTE_CK_SESSION_HANDLE hSession;
	REMOTE_CK_BYTE pPart<>;
	REMOTE_CK_ULONG usPartLen;
};
struct R_CK_C_VerifyFinal_Param {
	REMOTE_CK_RV return_value;
	REMOTE_CK_SESSION_HANDLE hSession;
	REMOTE_CK_BYTE pSignature<>;
	REMOTE_CK_ULONG usSignatureLen;
};
struct R_CK_C_VerifyRecoverInit_Param {
	REMOTE_CK_RV return_value;
	REMOTE_CK_SESSION_HANDLE hSession;
	REMOTE_CK_MECHANISM_PTR pMechanism;
	REMOTE_CK_OBJECT_HANDLE hKey;
};
struct R_CK_C_VerifyRecover_Param {
	REMOTE_CK_RV return_value;
	REMOTE_CK_SESSION_HANDLE hSession;
	REMOTE_CK_BYTE pSignature<>;
	REMOTE_CK_ULONG usSignatureLen;
	REMOTE_CK_BYTE pData<>;
	REMOTE_CK_ULONG_PTR pusDataLen;
};
struct R_CK_C_DigestEncryptUpdate_Param {
	REMOTE_CK_RV return_value;
	REMOTE_CK_SESSION_HANDLE hSession;
	REMOTE_CK_BYTE pPart<>;
	REMOTE_CK_ULONG ulPartLen;
	REMOTE_CK_BYTE pEncryptedPart<>;
	REMOTE_CK_ULONG_PTR pulEncryptedPartLen;
};
struct R_CK_C_DecryptDigestUpdate_Param {
	REMOTE_CK_RV return_value;
	REMOTE_CK_SESSION_HANDLE hSession;
	REMOTE_CK_BYTE pEncryptedPart<>;
	REMOTE_CK_ULONG ulEncryptedPartLen;
	REMOTE_CK_BYTE pPart<>;
	REMOTE_CK_ULONG_PTR pulPartLen;
};
struct R_CK_C_SignEncryptUpdate_Param {
	REMOTE_CK_RV return_value;
	REMOTE_CK_SESSION_HANDLE hSession;
	REMOTE_CK_BYTE pPart<>;
	REMOTE_CK_ULONG ulPartLen;
	REMOTE_CK_BYTE pEncryptedPart<>;
	REMOTE_CK_ULONG_PTR pulEncryptedPartLen;
};
struct R_CK_C_DecryptVerifyUpdate_Param {
	REMOTE_CK_RV return_value;
	REMOTE_CK_SESSION_HANDLE hSession;
	REMOTE_CK_BYTE pEncryptedPart<>;
	REMOTE_CK_ULONG ulEncryptedPartLen;
	REMOTE_CK_BYTE pPart<>;
	REMOTE_CK_ULONG_PTR pulPartLen;
};
struct R_CK_C_GenerateKey_Param {
	REMOTE_CK_RV return_value;
	REMOTE_CK_SESSION_HANDLE hSession;
	REMOTE_CK_MECHANISM_PTR pMechanism;
	REMOTE_CK_ATTRIBUTE pTemplate<>;
	REMOTE_CK_ULONG usCount;
	REMOTE_CK_OBJECT_HANDLE_PTR phKey;
};
struct R_CK_C_GenerateKeyPair_Param {
	REMOTE_CK_RV return_value;
	REMOTE_CK_SESSION_HANDLE hSession;
	REMOTE_CK_MECHANISM_PTR pMechanism;
	REMOTE_CK_ATTRIBUTE pPublicKeyTemplate<>;
	REMOTE_CK_ULONG usPublicKeyAttributeCount;
	REMOTE_CK_ATTRIBUTE pPrivateKeyTemplate<>;
	REMOTE_CK_ULONG usPrivateKeyAttributeCount;
	REMOTE_CK_OBJECT_HANDLE_PTR phPrivateKey;
	REMOTE_CK_OBJECT_HANDLE_PTR phPublicKey;
};
struct R_CK_C_WrapKey_Param {
	REMOTE_CK_RV return_value;
	REMOTE_CK_SESSION_HANDLE hSession;
	REMOTE_CK_MECHANISM_PTR pMechanism;
	REMOTE_CK_OBJECT_HANDLE hWrappingKey;
	REMOTE_CK_OBJECT_HANDLE hKey;
	REMOTE_CK_BYTE pWrappedKey<>;
	REMOTE_CK_ULONG_PTR pusWrappedKeyLen;
};
struct R_CK_C_UnwrapKey_Param {
	REMOTE_CK_RV return_value;
	REMOTE_CK_SESSION_HANDLE hSession;
	REMOTE_CK_MECHANISM_PTR pMechanism;
	REMOTE_CK_OBJECT_HANDLE hUnwrappingKey;
	REMOTE_CK_BYTE pWrappedKey<>;
	REMOTE_CK_ULONG usWrappedKeyLen;
	REMOTE_CK_ATTRIBUTE pTemplate<>;
	REMOTE_CK_ULONG usAttributeCount;
	REMOTE_CK_OBJECT_HANDLE_PTR phKey;
};
struct R_CK_C_DeriveKey_Param {
	REMOTE_CK_RV return_value;
	REMOTE_CK_SESSION_HANDLE hSession;
	REMOTE_CK_MECHANISM_PTR pMechanism;
	REMOTE_CK_OBJECT_HANDLE hBaseKey;
	REMOTE_CK_ATTRIBUTE pTemplate<>;
	REMOTE_CK_ULONG usAttributeCount;
	REMOTE_CK_OBJECT_HANDLE_PTR phKey;
};
struct R_CK_C_SeedRandom_Param {
	REMOTE_CK_RV return_value;
	REMOTE_CK_SESSION_HANDLE hSession;
	REMOTE_CK_BYTE pSeed<>;
	REMOTE_CK_ULONG usSeedLen;
};
struct R_CK_C_GenerateRandom_Param {
	REMOTE_CK_RV return_value;
	REMOTE_CK_SESSION_HANDLE hSession;
	REMOTE_CK_BYTE pRandomData<>;
	REMOTE_CK_ULONG usRandomLen;
};
struct R_CK_C_GetFunctionStatus_Param {
	REMOTE_CK_RV return_value;
	REMOTE_CK_SESSION_HANDLE hSession;
};
struct R_CK_C_CancelFunction_Param {
	REMOTE_CK_RV return_value;
	REMOTE_CK_SESSION_HANDLE hSession;
};
struct R_CK_C_WaitForSlotEvent_Param {
	REMOTE_CK_RV return_value;
	REMOTE_CK_FLAGS flags;
	REMOTE_CK_SLOT_ID_PTR pSlot;
	REMOTE_CK_VOID_PTR pReserved;
};
program remote_pkcs11_PROGRAM {
	version remote_pkcs11_VERSION {
	R_CK_C_Initialize_Param R_CK_C_Initialize(R_CK_C_Initialize_Param) = 1;
	R_CK_C_Finalize_Param R_CK_C_Finalize(R_CK_C_Finalize_Param) = 2;
	R_CK_C_Terminate_Param R_CK_C_Terminate(R_CK_C_Terminate_Param) = 3;
	R_CK_C_GetInfo_Param R_CK_C_GetInfo(R_CK_C_GetInfo_Param) = 4;
	R_CK_C_GetSlotList_Param R_CK_C_GetSlotList(R_CK_C_GetSlotList_Param) = 5;
	R_CK_C_GetSlotInfo_Param R_CK_C_GetSlotInfo(R_CK_C_GetSlotInfo_Param) = 6;
	R_CK_C_GetTokenInfo_Param R_CK_C_GetTokenInfo(R_CK_C_GetTokenInfo_Param) = 7;
	R_CK_C_GetMechanismList_Param R_CK_C_GetMechanismList(R_CK_C_GetMechanismList_Param) = 8;
	R_CK_C_GetMechanismInfo_Param R_CK_C_GetMechanismInfo(R_CK_C_GetMechanismInfo_Param) = 9;
	R_CK_C_InitToken_Param R_CK_C_InitToken(R_CK_C_InitToken_Param) = 10;
	R_CK_C_InitPIN_Param R_CK_C_InitPIN(R_CK_C_InitPIN_Param) = 11;
	R_CK_C_SetPIN_Param R_CK_C_SetPIN(R_CK_C_SetPIN_Param) = 12;
	R_CK_C_OpenSession_Param R_CK_C_OpenSession(R_CK_C_OpenSession_Param) = 13;
	R_CK_C_CloseSession_Param R_CK_C_CloseSession(R_CK_C_CloseSession_Param) = 14;
	R_CK_C_CloseAllSessions_Param R_CK_C_CloseAllSessions(R_CK_C_CloseAllSessions_Param) = 15;
	R_CK_C_GetSessionInfo_Param R_CK_C_GetSessionInfo(R_CK_C_GetSessionInfo_Param) = 16;
	R_CK_C_GetOperationState_Param R_CK_C_GetOperationState(R_CK_C_GetOperationState_Param) = 17;
	R_CK_C_SetOperationState_Param R_CK_C_SetOperationState(R_CK_C_SetOperationState_Param) = 18;
	R_CK_C_Login_Param R_CK_C_Login(R_CK_C_Login_Param) = 19;
	R_CK_C_Logout_Param R_CK_C_Logout(R_CK_C_Logout_Param) = 20;
	R_CK_C_CreateObject_Param R_CK_C_CreateObject(R_CK_C_CreateObject_Param) = 21;
	R_CK_C_CopyObject_Param R_CK_C_CopyObject(R_CK_C_CopyObject_Param) = 22;
	R_CK_C_DestroyObject_Param R_CK_C_DestroyObject(R_CK_C_DestroyObject_Param) = 23;
	R_CK_C_GetObjectSize_Param R_CK_C_GetObjectSize(R_CK_C_GetObjectSize_Param) = 24;
	R_CK_C_GetAttributeValue_Param R_CK_C_GetAttributeValue(R_CK_C_GetAttributeValue_Param) = 25;
	R_CK_C_SetAttributeValue_Param R_CK_C_SetAttributeValue(R_CK_C_SetAttributeValue_Param) = 26;
	R_CK_C_FindObjectsInit_Param R_CK_C_FindObjectsInit(R_CK_C_FindObjectsInit_Param) = 27;
	R_CK_C_FindObjects_Param R_CK_C_FindObjects(R_CK_C_FindObjects_Param) = 28;
	R_CK_C_FindObjectsFinal_Param R_CK_C_FindObjectsFinal(R_CK_C_FindObjectsFinal_Param) = 29;
	R_CK_C_EncryptInit_Param R_CK_C_EncryptInit(R_CK_C_EncryptInit_Param) = 30;
	R_CK_C_Encrypt_Param R_CK_C_Encrypt(R_CK_C_Encrypt_Param) = 31;
	R_CK_C_EncryptUpdate_Param R_CK_C_EncryptUpdate(R_CK_C_EncryptUpdate_Param) = 32;
	R_CK_C_EncryptFinal_Param R_CK_C_EncryptFinal(R_CK_C_EncryptFinal_Param) = 33;
	R_CK_C_DecryptInit_Param R_CK_C_DecryptInit(R_CK_C_DecryptInit_Param) = 34;
	R_CK_C_Decrypt_Param R_CK_C_Decrypt(R_CK_C_Decrypt_Param) = 35;
	R_CK_C_DecryptUpdate_Param R_CK_C_DecryptUpdate(R_CK_C_DecryptUpdate_Param) = 36;
	R_CK_C_DecryptFinal_Param R_CK_C_DecryptFinal(R_CK_C_DecryptFinal_Param) = 37;
	R_CK_C_DigestInit_Param R_CK_C_DigestInit(R_CK_C_DigestInit_Param) = 38;
	R_CK_C_Digest_Param R_CK_C_Digest(R_CK_C_Digest_Param) = 39;
	R_CK_C_DigestUpdate_Param R_CK_C_DigestUpdate(R_CK_C_DigestUpdate_Param) = 40;
	R_CK_C_DigestKey_Param R_CK_C_DigestKey(R_CK_C_DigestKey_Param) = 41;
	R_CK_C_DigestFinal_Param R_CK_C_DigestFinal(R_CK_C_DigestFinal_Param) = 42;
	R_CK_C_SignInit_Param R_CK_C_SignInit(R_CK_C_SignInit_Param) = 43;
	R_CK_C_Sign_Param R_CK_C_Sign(R_CK_C_Sign_Param) = 44;
	R_CK_C_SignUpdate_Param R_CK_C_SignUpdate(R_CK_C_SignUpdate_Param) = 45;
	R_CK_C_SignFinal_Param R_CK_C_SignFinal(R_CK_C_SignFinal_Param) = 46;
	R_CK_C_SignRecoverInit_Param R_CK_C_SignRecoverInit(R_CK_C_SignRecoverInit_Param) = 47;
	R_CK_C_SignRecover_Param R_CK_C_SignRecover(R_CK_C_SignRecover_Param) = 48;
	R_CK_C_VerifyInit_Param R_CK_C_VerifyInit(R_CK_C_VerifyInit_Param) = 49;
	R_CK_C_Verify_Param R_CK_C_Verify(R_CK_C_Verify_Param) = 50;
	R_CK_C_VerifyUpdate_Param R_CK_C_VerifyUpdate(R_CK_C_VerifyUpdate_Param) = 51;
	R_CK_C_VerifyFinal_Param R_CK_C_VerifyFinal(R_CK_C_VerifyFinal_Param) = 52;
	R_CK_C_VerifyRecoverInit_Param R_CK_C_VerifyRecoverInit(R_CK_C_VerifyRecoverInit_Param) = 53;
	R_CK_C_VerifyRecover_Param R_CK_C_VerifyRecover(R_CK_C_VerifyRecover_Param) = 54;
	R_CK_C_DigestEncryptUpdate_Param R_CK_C_DigestEncryptUpdate(R_CK_C_DigestEncryptUpdate_Param) = 55;
	R_CK_C_DecryptDigestUpdate_Param R_CK_C_DecryptDigestUpdate(R_CK_C_DecryptDigestUpdate_Param) = 56;
	R_CK_C_SignEncryptUpdate_Param R_CK_C_SignEncryptUpdate(R_CK_C_SignEncryptUpdate_Param) = 57;
	R_CK_C_DecryptVerifyUpdate_Param R_CK_C_DecryptVerifyUpdate(R_CK_C_DecryptVerifyUpdate_Param) = 58;
	R_CK_C_GenerateKey_Param R_CK_C_GenerateKey(R_CK_C_GenerateKey_Param) = 59;
	R_CK_C_GenerateKeyPair_Param R_CK_C_GenerateKeyPair(R_CK_C_GenerateKeyPair_Param) = 60;
	R_CK_C_WrapKey_Param R_CK_C_WrapKey(R_CK_C_WrapKey_Param) = 61;
	R_CK_C_UnwrapKey_Param R_CK_C_UnwrapKey(R_CK_C_UnwrapKey_Param) = 62;
	R_CK_C_DeriveKey_Param R_CK_C_DeriveKey(R_CK_C_DeriveKey_Param) = 63;
	R_CK_C_SeedRandom_Param R_CK_C_SeedRandom(R_CK_C_SeedRandom_Param) = 64;
	R_CK_C_GenerateRandom_Param R_CK_C_GenerateRandom(R_CK_C_GenerateRandom_Param) = 65;
	R_CK_C_GetFunctionStatus_Param R_CK_C_GetFunctionStatus(R_CK_C_GetFunctionStatus_Param) = 66;
	R_CK_C_CancelFunction_Param R_CK_C_CancelFunction(R_CK_C_CancelFunction_Param) = 67;
	R_CK_C_WaitForSlotEvent_Param R_CK_C_WaitForSlotEvent(R_CK_C_WaitForSlotEvent_Param) = 68;
	} = 1;
} = 0x2000000;